분류 전체보기 265

firebase hosting 배포 정리

✅ Firebase Hosting을 이용한 Flutter 웹 배포 방법🛠️ 1. Firebase 프로젝트 생성Firebase 콘솔 접속"프로젝트 만들기" 클릭프로젝트 이름 입력 (예: my-flutter-web)Google 애널리틱스 사용 여부 선택 (사용 안 해도 됨)프로젝트 생성 완료!🛠️ 2. Firebase CLI 설치 & 로그인Firebase CLI(Command Line Interface)를 설치해서 Firebase와 연결해야 해.(1) Firebase CLI 설치✅ MacOS / Linux (Homebrew 사용)sh복사편집brew install firebase-cli ✅ Windows (npm 사용)sh복사편집npm install -g firebase-tools (2) Firebase ..

카테고리 없음 2025.03.13

컨테이너 vs 파드

한 컨테이너에 하나의 파드만 있어야 하나요?아니요! 컨테이너 하나당 하나의 파드만 있어야 한다는 제한은 없습니다. 하지만, 쿠버네티스에서는 일반적으로 하나의 파드에 여러 개의 컨테이너가 포함될 수 있습니다.🌟 왜 하나의 파드에 여러 개의 컨테이너가 있을 수 있을까?파드는 서로 관련된 컨테이너들을 그룹화하여 관리하기 위해 사용됩니다. 하나의 파드에 여러 개의 컨테이너를 두는 이유는 다음과 같습니다.1️⃣ 보조 작업 수행 (Sidecar Pattern)한 컨테이너가 애플리케이션을 실행하고, 다른 컨테이너가 로깅, 모니터링, 프록시, 데이터 동기화 등의 역할을 담당할 수 있음예:메인 컨테이너 → 웹 애플리케이션 실행보조 컨테이너 → 로그 수집 및 전달 (Fluentd)2️⃣ 같은 네트워크 & 볼륨 공유파드 ..

TIL 2025.03.13

JWT 토큰 내말대로정리

JWT 토큰 아오 그냥 정리하자 쉽게 내 용어로. 1. 로그인시 서버 -> 클라이언트한테 jwt 토큰 줌 ( 헤더로) ( 키 2개줌. refresh 토큰 , access token) 2. 클라이언트 대칭키 비대칭키. 그냥 말이 어려워서 햇갈리는거임. 대칭키 : 대칭 -> 그냥 키가 1개. 비대칭키 : 키가 2개. 이유 ) 비대칭키는 키가 2개면? 보안이 좋다. 이유? : 키 A ( 개인키 ) 는 집 열쇠임. 키 B ( 공개키) 는 우체통 투입구임. ( 누구나 넣을 순 있으나 열 수 없음 ) refresh access token 왜 토큰 2개쓰는지? 1) 서버 관리에 용이 ( access token)은 서버 메모리에서 확인 가능 ( 개인키로 그냥 열기만 하고, 만료시간 체크 ) 2) refresh 토큰은 ..

TIL 2025.02.16

spring delete 쿼리가 안나갈 경우.

delete 쿼리가 바로 안나갈떄가 있다. 지연 쿼리떄문임! 그러면 왜 insert는 바로 되는것같지? -> 1. Transactional 로 안묶여있을 경우 ->2. Id 생성전략이 identity 인 경우에는 그렇게 됨 ( 다음 시퀀스 select해야해서)  insert / delete 메소드의 트랜잭션 범위:이 메소드가 별도의 @Transactional 어노테이션을 가지고 있거나,서비스 레이어에서 이 메소드를 호출하고 그 서비스 메소드가 @Transactional로 annotate 되어 있다면,insertCity() 메소드가 종료될 때 해당 트랜잭션이 커밋되면서 INSERT 쿼리가 즉시 실행될 수 있습니다.ID 생성 전략:만약  엔티티의 ID가 @GeneratedValue(strategy = Gen..

TIL 2024.09.03

쿼리 최적화

로컬에서는 빠른데, aws에 올린 내 귀여운 프리티어 db서버는 겁나 느리다. 로컬 : 0.01초 -> aws : 1초 ㅋㅋ 오히려 잘됐다 이놈! 인덱싱이나 해보자. 현재 10만건의 db가 있다. x,y 와 type들, 그리고 size로 order_by가 되어있었다. explain을 하며 영차영차 따져봤는데.. 결론 )  쿼리의 where 들의 순서는 별 상관이 없다. 인덱스의 순서가 상관이 있다!! 특히 앞에부터 '걸러질게 많은' 순대로 하는게 좋다. 예를들어 size>0 이고 x y ( 좌표) 라고 한다면, size ,x ,y 순으로 되는것보다 x, y , size 순으로 되는게 훨씬 도움이 된다.  오라클에서는 좀더 친절한것같은데 mariadb로 쓰니까 뭔가 내가 직접하는것 같아서 하는맛은 나는느낌..

TIL 2024.08.12

JVM/ GC튜닝 맛보기

GC 에 대해 알아보좌. 힙메모리 영억을 확보해주는걸 jvm에서 gc라고 함. JAVA ) C와 다르게 OS 실행환경에 종속적이지 않음.  1) .java 파일 작성2) 컴파일 ( javac 컴파일러)-> .class ( byteColde , 클래스마다 생김)3) JVM 을 읽어서 실행하는 머신4) 인터프리터 : JVM 내부의 컴포넌트로, 바이트코드를 한줄씩 기계어로 변환5) JIT 컴파일러 ( just in time). 자주 실행되는 코드를 감지함. ( 인터프리터 단점 보완)   visual VM 깔면 보기 가능!! 신기하군     참고 ) https://velog.io/@akfls221/JVM%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%B4-GC-%EA%B7%B8%E..

TIL 2024.07.16

ELK 구축하기

무려 16.9k star가 있는 깃 레포를 들어가자. https://github.com/deviantony/docker-elk GitHub - deviantony/docker-elk: The Elastic stack (ELK) powered by Docker and Compose.The Elastic stack (ELK) powered by Docker and Compose. - deviantony/docker-elkgithub.com 들어가서 하라는대로 하면,  5601 은 안된다. 왜냐면 최근 elastic version은 인증을 강화해서그런것같다. elasticseach/config 안에 elasticsearch.yml 을 수정하자.xpack.security.enabled: true 를xpack.s..

TIL 2024.07.08

docker container끼리 연결 안될때

mariadb spring 연결이 안된다. 로컬에서는 되는데 docker끼리 에서는 spring에서 mariadb 컨테이너를 못찾는다고 뜬다. 그럴떄는 network를 맞춰주자!! docker network create 네트워크명 를 해서 네트워크를만들고 docker run -d --name mariadb --network 네트워크\   -e MARIADB_ROOT_PASSWORD=root \   -e MARIADB_DATABASE=db(없어도됨)\   -p 3306:3306 \   mariadb-이미지이름:latest docker run -d --name spring-app --network 네트워크 \   -p 8080:8080 \   spring-이미지이름:latest 아우 뻘짓 ㅜㅠㅜㅜㅜㅜㅜ

TIL 2024.06.27