개발/기타
-
DB Lock개발/기타 2025. 5. 4. 23:57
최근 간단한 예약 서비스 과제를 진행하면서, JPA의 Lock을 직접 다뤄야 하는 상황이 생겼다. @Transactional만으로는 동시성 문제가 해결되지 않았고 비관적 락(Pessimistic Lock) 을 적용해 해결했다.이후 해당 내용에 대해 좀 더 자세히 알아보고자 글을 작성하게 되었다. 대표적으로 사용하는 DB중 하나인 MySQL 기준으로 작성할 예정이며 아래와 같은 순서로 작성하겠다. 1. DB Lock의 기본 개념2. Read Lock vs Write Lock3. 비관적 락 vs 낙관적 락4. 교착 상태5. ORM과 Lock (JPA)1. DB LockLock은 왜 사용해야 할까? 예를 들어 캐치테이블 같은 예약 앱을 생각해보자.여러 명의 유저가 동시에 예약을 시도했을 때, 누가 예약을 ..
-
DNS, DNS 레코드, 서브도메인개발/기타 2025. 5. 3. 18:23
도메인과 연결된 IP를 바꾼다거나, xxx.co.kr 도메인으로 접속했을 때 xxx.com 도메인으로 변경이 필요했던 적이 있다.AWS로 구성된 인프라 환경이었기에 Route53에 있는 레코드 값을 변경해주면 됬지만, 각각의 레코드가 어떤 의미인지 모르고 있었기에 이번에 한번 정리해보고자 한다. 아래와 같은 순서로 작성할 예정이다. 1. DNS? 2. DNS 레코드 종류와 역할3. 서브도메인?1. DNS?나는 DNS를 IP의 별칭 정도로 이해했다.11.22.33.44 라는 IP가 있다면 이에 대한 별칭으로 google.com이 등록돼 있는 것이고, 사람들은 IP보단 별칭인 DNS인 google.com을 사용하는 것 이다. 면접 문제로 브라우저에 "google.com"을 입력하면 어떤 일이 일어나나요?..
-
브라우저에 google.com을 입력하면 어떤 일이 일어날까? - 2개발/기타 2025. 4. 21. 00:04
아래 내용 중 1~3번에 대해 간략하게 요약해 작성하고 4, 5번에 대해 자세히 작성하겠다.1~3번의 자세한 내용은 이전글에 작성했다. 0. 사용자가 google.com을 입력1. 캐시 검사 : 해당 도메인에 대한 IP가 캐시에 있는지 검사한다. 2. DNS 조회 : 만약 캐시가 되어있지 않다면 DNS를 조회해 IP값을 조회한다. 3. TCP (및 TLS) 연결 설정 : DNS를 통해 얻은 IP 주소로 TCP(+TLS) 연결을 시도한다. 4. HTTP 요청 및 응답5. 브라우저의 페이지 렌더링 3번에서 TCP 연결이 완료되면, 이제 해당 IP를 통해 실제 요청을 보낼 차례이다. 실행 흐름대로 작성해야 해서 4번과 5번에 대해 함께 작성하고 이후 추가 설명을 덧붙이도록 하겠다. 4. HTTP 요청 및..
-
브라우저에 google.com을 입력하면 어떤 일이 일어날까? - 1개발/기타 2025. 4. 14. 00:30
브라우저에 google.com을 입력하면 어떤 일이 일어나는지에 대해 작성해보겠다. 아래와 같은 순서로 작성할 예정이다.1. 브라우저에 "google.com"을 입력하면 어떤 일이 일어날까? 1) 캐시 검사 2) DNS 조회 3) TCP (및 TLS) 연결 설정 4) HTTP 요청 및 응답 5) 브라우저의 페이지 렌더링1. 브라우저에 "google.com"을 입력하면 일어나는 일아래와 같은 순서로 동작한다.1. 캐시 검사2. DNS 조회3. TCP (및 TLS) 연결 설정4. HTTP 요청 및 응답5. 브라우저의 페이지 렌더링1) 캐시 검사 및 DNS 조회도메인 조회 시 캐시가 존재하는지, 존재한다면 TTL이 만료되었는지 확인하고 필요한 경우 DNS 서버에 요청한다...
-
스택이 매우 커질 수 있다면 힙은 불필요할까?개발/기타 2025. 4. 6. 22:24
https://www.youtube.com/watch?v=9TSojdIr8Q0이 영상을 보고 "나라면 어떻게 답변했을까?" + 부족했던 점을 작성하고자 한다. 알고 있는 지식, ChatGPT와 더불어 이것 저것 찾아보겠지만 잘못된 내용이 있을 수 있습니다.잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다 :)나라면 어떻게 답변했을까? (잘못된 내용이 있습니다.)메모리 할당 영역은 Data, Stack, Heap 영역 이렇게 3가지가 있는 것으로 알고 있다. Data영역- 전역변수, static 변수 등이 존재Stack 영역- 고정 크기, 지역변수, 매개변수, 함수 리턴 주소가 존재Heap 영역- 동적 크기, 동적 할당 변수 존재 이정도로 배경지식이 있는 상태이다.그렇다면, 스택이 매우 커질 수 있다면..
-
쿠버네티스란?개발/기타 2025. 2. 23. 23:08
"k8s라고도 알려진 쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템" Docs에 작성돼 있다. 이 설명만 봐도 용어가 너무 많으므로 1. 용어에 대한 의미(컨테이너와 애플리케이션, 배포 및 스케일링)와2. 쿠버네티스에 대한 내용3. 쿠버네티스에서 사용하는 용어순서로 각각의 용어들과 함께 쿠버네티스에 대해 간단히 작성해보고자 한다.1. 용어에 대한 의미1) 컨테이너와 애플리케이션 컨테이너는애플리케이션과 그 실행에 필요한 모든 요소(코드, 라이브러리, 설정 등)를 하나의 패키지로 묶어 격리된 환경에서 실행할 수 있도록 해주는 기술이다. 여기서 애플리케이션은 내가 주로 사용하는 스프링부트로 예시를 들 수 있다.그리고 애플리케이션을 컨테이너로 만들어주는 도구로는..
-
25년 계획 및 23~24년 회고개발/기타 2024. 12. 29. 17:53
25년 목표는 아래와 같다.1. 개인으로서 목표사놓고 읽지 못한 개발서적들이 있고 연말에 읽기위해 분철을 해 두었다. 다 읽는 것이 목표이다. 자바 ORM 표준 JPA 프로그래밍운영체제(공룡책) 오브젝트Head First Design Pattern인프런에 아직 듣지 못한 강의 역시 다 듣는 것이 목표이다.토비의 스프링김영한의 실전 자바실전 QueryDsl기타 자바 관련 강의들코틀린 공부기존 코틀린 앱 개발 경험을 살려 코틀린에 대해 개인적으로 공부를 해보고자 한다.고민중인 내용백엔드/안드로이드 둘 다 맡아 앱 개발을 하나 해볼 예정이다.회사 내 JAVA 코드를 혼자서 개인공부 용도로 코틀린으로 전환해볼까 고민중이다.이 과정에서 Kotlin JDSL을 사용해보고 해당 오픈소스에 기여해보는 것이 목표이다.(..
-
SSAFY 1학기 회고개발/기타 2023. 12. 11. 14:35
23년 5월부터 싸피를 준비해서 7월에 입과가 확정되고 이후에 모바일반 분반 시험, A형 시험, 여러 관통 프로젝트 및 최종 프로젝트까지 올해는 꽤나 바쁘게 살았다고 생각한다. 회고를 처음 작성해보는데, 회고 방식을 찾아보니 KPT(Keep-Problem-Try) 방식의 회고가 괜찮아 보여서 이 방식과 후기 이벤트에 필요한 요소들인 1. SSAFY에서 가장 기억에 남는 기억 2. SSAFY 교육 이후 성장한 점 2가지 3. SSAFY를 추천하는 이유 2가지 를 추가해서 작성해보려고 한다. Keep(지속할 것) 개인적으로 살면서 가장 열심히 살았다고 자부할 수 있는 경험이었다. 물론 아직 1학기밖에 하지 않았지만 모바일반은 이미 어느정도 베이스가 있다고 가정하고 진도를 나가다보니 진도를 따라가고 최대한 이..