소개
안녕하세요. 지식공유자 설동민입니다.
현재 카카오 백엔드 개발자로 근무하고 있으며, 복잡한 문제를 명쾌하게 풀어내는걸 좋아합니다.
경영학부 비전공자 출신으로, 다양한 OpenSource들에 대한 분석과 여러 기술적인 경험들을 통해
웹의 전반적인 기술을 학습하였습니다. OOP와 SQL, 이 어울리지 않는 두가지를 제일 좋아합니다.
Github: https://github.com/SightStudio
이력
2021. 12 ~ 현재 : 카카오 백엔드 개발
2020.12 ~ 2021.12: 전) 이스트소프트 백엔드 개발
강의
전체1수강평
게시글
질문&답변
2024.06.27
하나의 디비를 여러 백엔드 서버가 필요로 할 때, flyway 관리
안녕하세요 해당 질문 답변드립니다. 스프링에서 CICD 단계 때 flyway로 데브나 프로덕션 단계 때 마이그레이션 적용 가능여부 해당 방식 여러가지 방법으로 가능합니다. 다만 이 방식 자체를 추천하지 않습니다. maven 이나, gradle 에서 빌드 완료 시 실행 할 수도 있고, 배포 후 스프링에서 이렇게 실행을 할 수 도 있지만 이런 방식으로 DDL 자체를 dev나 prod에서 자동으로 실행하는건 너무나도 위험합니다. DDL은 트랜잭션이 지원되지 않습니다. 실수로 빌드가 완료 된 후 DDL을 실행했는데 중간에 오타가 있다면 그 부분은 결국 또 수기로 처리해야합니다. 개발 페이즈에 만들었던 DDL을 운영에 그대로 반영하면 안되는 경우도 꽤 있습니다. 배포와는 별개로 사용자가 적은 시간대에 인덱스를 추가하거나, online DDL을 위해서 쿼리가 변경되서 반영되어야하는 경우가 예시 중 하나입니다. 데이터가 유실되거나 장애를 발생시킬 경우도 존재하기 때문에 운영 DDL은 자동화하면 안됩니다. 프로젝트(레포지토리)가 4개 경우에 code로 DDL 관리 4개의 프로젝트가 같은 DB를 바라보고있는걸로 보이는데요. RDBMS의 role로 관리되고 있다면 해당 role 에 맞춰서 프로젝트별로 관리하면 되고, DDL을 코드로 관리하기 전에 4개 프로젝트 모두 모든 DB 테이블에 접근 할 수 있나요? 만약 그렇다면 이부분부터 문제가 있다고 생각합니다. 만약 논리적인 구분없이 4개의 프로젝트 모두 DB 테이블에 접근이 가능하다면 4개의 프로젝트를 하나의 모노레포로 만들고 하위에 공통 모듈을 두어 거기서 DSL을 만들어 관리하게 하는 방법이 제일 적절해보입니다.
- 1
- 3
- 109
질문&답변
2024.06.26
하나의 디비를 여러 백엔드 서버가 필요로 할 때, flyway 관리
오늘안에 답변드리도록 하겠습니다.
- 1
- 3
- 109
질문&답변
2024.06.22
dslContext 작성 시 fetchGroups 이렇게 작성해도 될까요?
답변은 이정도로 충분할것같은데요! 해당 질문은 완료처리하도록 하겠습니다 ㅎㅎ 추가로 궁금한 점이 있으시다면 댓글 달아주시면 답변해드리도록 하겠습니다
- 1
- 5
- 146
질문&답변
2024.06.22
R2DBC 환경에서 jOOQ generate 된 Dao를 사용할 수 있는 방법이 있을까요?
답변은 이정도로 충분할것같은데요! 해당 질문은 완료처리하도록 하겠습니다 ㅎㅎ 추후에 시도해보신 후기를 정리해서 다른분들에게 공유해보는것도 정말 좋을것같아요! 추가로 궁금한 점이 있으시다면 댓글 달아주시면 답변해드리도록 하겠습니다 감사합니다!
- 2
- 3
- 288
질문&답변
2024.06.22
dslContext 작성 시 fetchGroups 이렇게 작성해도 될까요?
chhong 님 안녕하세요! 결론부터 말하면 가능합니다. 그리고 지금 생각해보니 chhong 님이 말씀해주신 방식이 훨씬 좋아보이네요 ㅎㅎ 이 질문은 강의노트에 추가해놓도록 하겠습니다 🙂 이 방식은 실제 문서에도 기재되어있는 방식입니다.. (링크) 강의를 촬영하면서 명시적으로 alias를 붙이는 부분도 넣으려다보니 이부분에 대한 설명이 빠졌었었네요. 이 방식을 사용하면 alias에 문자열을 추가하지 않아도 원하는 결과를 얻어 낼 수 있습니다. alias 설정없이 JActor.ACTOR 로 쿼리를 실행하면 내부 alias가 'actor'로 실행되는데요. 이 alias를 name으로 가져 올 수 있습니다. (자바의 경우 $name() 메서드) (사진) (이는 자동생성되는 JActor 클래스 내부 생성자에서 알 수 있습니다.) (사진) (사진)
- 1
- 5
- 146