728x90 전체 글138 [Docker] docker compose 활용해보기 이전에는 저의 스프링 기반의 프로젝트를 도커 이미지화 시켜서 실행시키는 내용을 적었었습니다. 이 프로젝트를 진행하며 h2 데이터베이스를 사용하고 있었는데 postgres를 사용하도록 바꿔보려고 했습니다.따라서, 프로젝트 도커 이미지와 postgres 도커 이미지를 사용하여 프로젝트를 실행시키려고 하였고 이때 docker compose를 사용하게 되었습니다. 우선 docker compose가 뭔지 알아보겠습니다. docker compose란?- 여러 개의 docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있는 도구 위의 정리한대로 저는 제가 만든 프로젝트 컨테이너와 postgres 컨테이너를 묶어서 관리할 필요가 있었고 docker compose를 사용하게 된 것입니다. .. 2024. 10. 2. [Docker] 스프링 부트 프로젝트를 Docker 이미지로 실행시키기 안녕하세요! 이번 포스팅에서는 스프링 부트 프로젝트를 Docker 이미지로 만들고 이를 실행시키는 내용을 작성해보겠습니다. 도커 관련해서 글을 쓴 것은 이번이 처음이고 부족한 부분이 많습니다.. 잘못된 점이나 더 알면 좋은 정보가 있다면 알려주세요 ㅠㅠ 저는 야구를 좋아하는데 이번에 재미삼아서 기아타이거즈 정보 전달 레터 서비스를 만들고 있는 중입니다. (진짜 정보 레터가 전달될지는 몰라여.. ㅋㅋㅋㅋ) 기술 스택 : kotlin, spring boot, jpa, h2 간단하게 기능들입니다.- 이메일 등록- 이메일 비활성화- 기간 별로 메일 전송 로직 이번 포스팅은 Docker 이미지 포스팅이니 프로젝트 설명은 여기까지만 하겠습니다. 우선, Docker 이미지를 만들기 위해서는 Dockerfile을 만들.. 2024. 9. 4. 코틀린 jpa 지연로딩 코틀린으로 개인 프로젝트를 진행하던 중 흥미로운(미칠뻔한) 상황을 포스팅해보려고 합니다. jpa를 사용하면서 중요하게 신경써야하는 부분이 n+1 쿼리라고 생각합니다. 그 이유는 당장의 슬로우 쿼리는 아니지만.. 개발자도 모르는 사이에 n+1 쿼리가 쌓여가고 사용자 수가 많아지면 언젠가 데이터베이스 서버에 부하를 줄 수 있기 때문입니다! 메모리 안차면 좋고~ 따라서, 저는 jpa를 사용하면 fetchJoin을 이용해서 최대한 n+1쿼리가 안나게 만드려고 하는데요! 코틀린으로 jpa를 사용하면서 무슨 짓을 해도 발생하는 n+1 쿼리 때문에 매우 흥미로운(정신 나갈뻔..) 상황이 있었습니다 ㅎㅎ 상황을 만들어보겠습니다. team과 member가 있고 다대일 관계입니다. member에서 team을 fetchTy.. 2024. 4. 1. 트랜잭션 예외처리 롤백 개인 프로젝트를 하며 만났던 당황스러운 상황에 대해서 포스팅을 해보려고 합니다. 결론부터 말씀드리면 트랜잭션 사용 중 예외가 발생하면 롤백이 발생하는데 unCheked예외일 경우에만 롤백이 발생한다! 입니다. 간단한 예시 상황을 만들어 보겠습니다. (학습목표 포함!) 멤버와 팀이 존재한다. 팀을 저장할 때 멤버를 함께 생성한다. 팀은 성공적으로 insert쿼리가 나갔고 멤버를 저장하는 타이밍에 예외가 발생한다. 이때 checkedException과 unCheckedException이 발생했을 때 어떻게 다른지 확인해보자~ 우선, 제가 잘못 알고 있었던 부분은 '예외의 따라서 롤백이 되는 것이 아닌 예외가 발생하면 무조건 롤백' 입니다. 따라서, 위의 상황에서 4번에 상관없이 무조건 팀도 롤백이 되는 줄 .. 2024. 4. 1. [객체지향의 사실과 오해] 2장 이상한 나라의 객체 객체지향과 인지 능력 많은 사람들이 객체지향을 직관적이고 이해하기 쉬운 패러다임이라고 말하는 이유 -> 객체지향이 세상을 자율적이고 독립적인 객체들로 분해할 수 있는 인간의 기본적인 인지능력에 기반을 두고 있기 때문 객체 : 인간이 분명하게 인지하고 구별할 수 있는 물리적인 또는 개념적인 경계를 지닌 어떤 것 객체지향 프로그램 : 소프트웨어의 세계 역시 인간이 인지할 수 있는 다양한 소프트웨어 객체들이 모여 이뤄져 있다는 믿음에서 시작 그러나, 객체지향 패러다임의 목적 현실 세계 모방 x 현실 세계를 기반으로 새로운 세계를 창조 -> 소프트웨어 세계에서 살아가는 객체는 현실 세계에 존재하는 객체와는 전혀 다른 모습을 보이는 것이 일반적! 예시) 스스로 전원을 킬 수 있는 전구 주문 객체가 자신의 금액을 .. 2024. 3. 16. [객체지향의 사실과 오해] 1장 협력하는 객체들의 공동체 시너지를 생각해라. 전체는 부분의 합보다 크다. 객체지향의 공부를 처음 접하는 대부분의 사람들은 '객체지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임' 이라는 설명을 접하게 된다. 하지만 위의 패러다임은 철학적인 개념으로는 적합할수 있으나 유연하고 실용적인 관점에서는 적합하지 않다. 객체지향의 목표는 실세계를 모방하는 것이 아닌 새로운 세계를 창조하는 것이다. 그렇다면 왜 자꾸 실세계의 모델링이라는 개념을 사용하는 것일까? -> 객체지향의 캡슐화와 자율성을 설명하는데 효과적 -> 객체지향의 기본 사상을 이해하고 학습하는데 효과적 처음에 이부분을 읽었을 때는 조금 당황스러운 부분이 있었습니다.. 지금까지 알고 있었던 개념이 사실 적합하지 않을 수도..?? 협력하는 사람들 커피를 만들어 내.. 2024. 3. 12. 이전 1 2 3 4 ··· 23 다음 728x90