한화시스템 BEYOND SW 캠프 2기 - 11주차 회고
이번 한 주는 정말 바쁘게 지나갔다.
JPA를 사용하면 많이 발생하는 N + 1문제를 해결하는 여러 가지 방법에 대해서 학습했다.
학습한 내용들을 정리하기 전에 먼저 JPA에 대해서 확실히 정리 해야할 필요가 있어서 JPA에 대한 기초와 CRUD를 어떻게 하는지 작성해봤다.
JPA - 엔티티(Entity)와 CRUD
엔티티(Entity) JPA에서 엔티티는 DB 테이블에 대응하는 하나의 클래스이다. 따라서 엔티티는 JPA를 사용하는 데 가장 중요한 것으로 엔티티와 테이블을 정확히 매핑해야 한다. JPA는 다양한 매핑 어
hotechstory.tistory.com
월요일에 JPA 수업이 끝나고 화요일에는 스프링 프로젝트를 어떻게 배포하는지를 학습했다.
개발 유튜브를 봤을 때 가장 공감되었던 말 중에 하나가 로컬에서 실행되는 서버를 만드는 것을 백엔드 개발자라고 하면 안 된다라는 말이었다.
내가 아무리 프로젝트를 열심히 하고, 좋은 서비스를 만들었다고 해도 결국 배포가 되지 않은 서비스는 접속할 수 없기 때문에 잘 만들었는지 알 수없다. 따라서 배포는 백엔드 개발자에게 있어서 중요한 기술이라고 생각이 들었다.
스프링 - 스프링 부트 프로젝트 배포하기
스프링 부트 프로젝트 배포 오늘은 스프링 부트 프로젝트를 배포해 봤다. 먼저 간단하게 그림으로 구조를 그려보면 아래의 그림과 같다. DB 서버로는 MySQL를 사용하여 Replication 설정을 해주었고,
hotechstory.tistory.com
남은 3일 동안은 MSA에 대해서 학습을 진행하였다.
MSA - 개념
MSA(Microservice Architecture) MSA는 소프트웨어 아키텍처의 패턴 중 하나로 독립적으로 개발 및 실행되는 소프트웨어 컴포넌트(서비스)를 여러 개 조합해서 하나의 애플리케이션을 구축하는 소프트웨
hotechstory.tistory.com
스프링 강의를 들으면서 시간이 남을 때 MSA 책을 읽어봤는데 MSA를 구성하려면 오랜 기간 고민하고 설계를 해야된다는 것을 알게 되었다.
부트캠프를 시작하기 전 부터 어떻게 설계를 해야되고, 어떤 것이 좋은 설계인지 공부하고 싶었는데 이번 기회로 조금이나마 알게 되어서 좋았다.
채용 공고에 많이 보이는 MSA를 직접 해보는 경험
최근 들어 채용 공고를 살펴보면 우대 사항으로 MSA를 경험해보거나 설계를 해본 경험이 있는지 물어본다.
점점 모든 것들이 디지털화 되어 가고, 그에 따라서 서비스의 규모가 확장되어서 기존의 시스템을 분리하는 MSA를 기업에서 많이 진행하는 것 같았다.
그러한 MSA를 학습해보고, 그림도 그려보면서 흐름을 파악해 보면서 직접 구현도 해보니 너무 재밌었고 흥미로웠다.
MSA를 구현해보니 기존의 레이어드 아키텍처보다 클래스 파일이 훨씬 많았고, 고려해야 되는 부분도 많아서 복잡했지만 의외로 구현이 끝나고 나서 확인해보니 기존보다 더 간단한 느낌이 들었다.
뭔가 내 개인적인 생각이지만 레이어드 아키텍처는 처음 설계에서 큰 어려움이 없지만 개발할 수록 점점 복잡해지고, 반대로 MSA는 처음 설계 부분에서 많은 고민이 필요하지만 구현하는데 있어 큰 어려움이 들지 않는 것 같다.
시간이 너무 부족했던 MSA 파트
지난번에 강사님이 MSA에 관해서 설명이 잘 된 유튜브 영상을 소개시켜주셨다.
기존의 서비스 구조를 MSA로 바꾸는 데 몇 년의 시간이 걸린다고 영상에서 나와있었다. 그렇게 잘 하는 사람들이 모여있다는 서비스 회사에서도 개발자들이 몇 년을 고민하고 구현해야 되는 것이 MSA인데 그걸 3일만 배울 수 있어서 너무 아쉬웠다.
MSA 책을 보더라도 많은 패턴이 존재하고 어떤 부분에서는 어떤 패턴들이 있는지 종류도 여러 가지여서 다 배워보고 싶었다.
MSA를 학습하는 시간을 좀 더 있었으면 어땠을까 하는 아쉬움이 많이 남았던 한 주였다.
쌓여 있는 개념들
계속 정리를 하고 있지만 아직도 정리할 개념들이 쌓여있고, 계속 쌓이고 있는 중이다.
아마도 이 번주에 학습했던 내용들이 2달 반동안 진행했던 내용들 중에서 가장 중요한 것들이지 않을까 생각한다.
이제 부트캠프도 3달 밖에 남지 않았기 때문에 하루하루 학습하는 시간에 더 몰입하여 공부를 하고 개념 정리를 해야겠다.
3일간 진행하는 백엔드 프로젝트
돌아오는 한 주 동안은 백엔드 프로젝트를 진행하게 된다.
백엔드 프로젝트를 진행한다고 하니 기대가 되면서도 벌써 부트캠프의 절반이 지나가고 있다는게 느껴졌다.
3개월간 나를 되돌아보면 최선을 다 했다고 볼 수 없을 것 같아서 조금 더 노력하고 힘을 내야겠다.
프로젝트가 끝난 후에는 다시 스프링에 관한 개념들을 정리할 예정이다.
그나마 다행인 점(?)은 학교를 다닐 때 2개 정도 프로젝트를 진행하면서 조금이나마 프론트엔트 쪽을 다뤄봐서 백엔드 개념을 정리할 시간이 있을 것 같다.
돌아오는 한 주 동안의 목표는 JPA 연관관계 정리와 N + 1 관련 문제를 정리해볼 예정이다.
'한화시스템 BEYOND SW 캠프 2기' 카테고리의 다른 글
한화시스템 BEYOND SW 캠프 2기 - 13주차 회고 (1) | 2024.01.30 |
---|---|
한화시스템 BEYOND SW 캠프 2기 - 12주차 회고 (1) | 2024.01.22 |
한화시스템 BEYOND SW 캠프 2기 - 10주차 회고 (1) | 2024.01.08 |
한화시스템 BEYOND SW 캠프 2기 - 9주차 회고 (0) | 2024.01.02 |
한화시스템 BEYOND SW 캠프 2기 - 8주차 회고 (2) | 2023.12.25 |