⌨️하루하루 배우는 개발 공부, 그리고 아쉬움
안녕하세요, 김기성입니다. 최근에는 취업 준비와 면접, 실무 테스트 준비로 정신없이 바쁜 나날을 보내고 있습니다.원래는 매일매일 블로그에 기술 스택과 공부한 내용을 정리해서 올리겠다고 다짐했었는데,막상 바쁘다 보니 ‘그냥 올리는 데 의미를 두자’라는 생각으로, GPT가 작성해 준 내용을 복붙하는 수준에 머무른 것 같아 아쉬움이 남습니다.하지만 기쁘게도, 최근 한 회사에서 저를 좋게 봐 주셔서 내일부터 3개월간 인턴을 시작하게 되었습니다.아직 확신이 서서 결정된 것은 아니지만, 기회를 주고 싶다고 말씀해 주셔서 너무 감사했습니다.
✅ TypeScript - infer 키워드infer는 타입스크립트에서 조건부 타입 안에서 특정 타입을 추론할 때 사용됩니다.독립적으로는 쓸 수 없고, 반드시 extends와 함께 사용해야 합니다.예시:
type GetReturnType
이렇게 하면 함수의 반환 타입을 R로 추론해 줍니다.
출처: https://romantech.net/1238
✅ @OneToOne Lazy Loading 주의점JPA에서 @OneToOne 관계를 맺고 fetch = LAZY를 지정해도, 연관관계의 주인이 아닌 쪽에서는 Lazy 로딩이 동작하지 않을 수 있습니다.이는 FK가 주인 엔티티에만 있기 때문에 발생하는 한계입니다.그래서 단방향으로 모델링하거나, Lazy가 정말 필요한지 다시 고민하는 것이 좋습니다.
출처: https://codediary21.tistory.com/110
✅ BFF(Backend For Frontend)BFF는 MSA 환경에서 클라이언트가 여러 API를 호출해야 하는 복잡함을 줄이기 위해 등장한 개념입니다.클라이언트별로 최적화된 데이터만 제공하는 백엔드 계층을 따로 두어, 웹/모바일/스마트TV 등에 맞게 데이터를 가공하고 효율을 높입니다.인증 처리, CORS 문제 해결 등도 맡을 수 있어 유용합니다.
출처: https://medium.com/@elifcetineer/backend-for-frontend-bff-architecture-666bbdc3d5b1
✅ IaC(Infrastructure as Code)코드로 인프라를 정의하고 배포하는 방식입니다.반복 작업을 줄이고, 형상 관리도 가능하며, 자동화가 쉽습니다.대표적인 도구로는 Terraform, CloudFormation, Ansible 등이 있습니다.단점은 러닝 커브와 디버깅의 어려움입니다.
출처: https://radixweb.com/blog/what-is-infrastructure-as-code-and-its-best-practices
✅ Hibernate SQL 로그아래는 Hibernate로 User와 Account의 연관 관계를 Lazy로 조회할 때 찍힌 쿼리 예시입니다.
select u1_0.id from users u1_0 where u1_0.id = ?
select a1_0.user_id from account a1_0 where a1_0.user_id = ?
@OneToOne 관계에서 Lazy 로딩이 걸리면 이렇게 SELECT 쿼리가 각각 실행됩니다.(참고: 연관관계 주인 쪽이 아니면 Lazy가 동작하지 않는 문제도 있습니다.)
출처: https://gmoon92.github.io/spring/jpa/hibernate/n+1/2021/01/12/jpa-n-plus-one.html
JPA 성능 N+1 문제와 해결 방법 Moon gmoon92.github.io
✨ 앞으로의 다짐‘매일’ 기록하는 것보다 중요한 건, 내가 직접 이해하고 경험한 것을 정리하는 것이라는 걸 느꼈습니다.앞으로는 느리더라도, 더 좋은 기록을 남길 수 있도록 노력하겠습니다.그리고 이번에 인턴 기회를 주신 만큼, 회사에 도움이 될 수 있도록 배우고 성장하며 최선을 다하겠습니다.아직 신입이고, 부족한 점이 많지만 너무 막 잘하려고 애쓰기보다는,혹여 실수를 하더라도 주눅들지 않고, 하루하루 배우며1인분은 아직 어렵더라도, 적어도 0.8인분을 할 수 있는 사람이 되도록 노력하겠습니다.오늘도 성장하는 하루가 되기를! 🌸
🎨 태그: #개발공부 #프로그래밍 #TypeScript #JPA #BFF #IaC #Hibernate #기록하는개발자 #인턴시작 #성장하는개발자