[수강생회고]백엔드 개발 캠프 7기 19주차 회고

일주일 동안 한 일에서 느낀 점

머리 속에 어떻게 구성할 지 로직은 떠오르는데 하고 싶은 일들이 많아서 어디서부터 작업해야 할 지 모르겠다.



1. 토큰 및 권한 관리를 네트워크 기반으로 관리 필요

서명관리부터 토큰 발행 관리가 난잡했다. 젠킨스 비밀번호를 잃어버려서 아예 로그인 인증 프로세스를 없애버린 나로썬 이 비상사태를 해결할 수 있는 방법이 필요하다. 클라이언트 호스트 자체에서 토큰을 관리할 수 없는 걸까.. 학원에서 배운 SSH와 ngnok 를 살짝 비틀면 만들 수 있을 것 같은데 일단 데브옵스 과제를 해결하면서 틈틈히 구현해봐야겠다.

2. 데브옵스 프로젝트 개선을 위한 기술스택 요구사항

호텔 예약 플랫폼에 백엔드와 프론트를 분리해서 기능을 고도화할 예정이다. 그래서 기술스텍에 대한 요구사항을 정의했다.

기술스택 요구사항

1) 프론트 엔드

  • 리액트
  • rxjs 상태관리

2) 백엔드

  • Java
  • 멀티모듈
  • 헥사고날

함수형 프로그래밍과 모듈형 프로젝트 구조를 이해하는 것에 도움이 될 것으로 기대됨


3. 헥사고날 자체가 중요한 것이 아니라 논리를 풀어낼 모듈과 폴더구조가 중요하구나

처음에 헥사고날이나 멀티모듈를 들었을 때 특별한 무언가가 있을 줄 알았다. 사실 생각해보면 리액트도 자동으로 폴더 구조 만들고 모듈로 정의해 놓은 것을 패키지로 구성해주는 건데.. 너무 복잡하게 생각했던 것 같다. 그래서 우선 내가 구현하고 싶은 것을 엑셀에 정리해서 각 항목에 대한 논리 구조를 작성할 예정이다.


현재 ver 0.2 인 폴더 구조 개선

프론트와 백엔드로 분리하여 독립한 상태에서 기능 개선이 이뤄질 예정이다. 그래서 앞으로도 아래 구조는 변경될 가능성이 높다.



좋았거나 내가 잘한 점 (feat.ChatGPT)

1) 큰 그림을 그리고 방향을 잡음

  • 호텔 예약 플랫폼을 개선하기 위해 백엔드와 프론트를 분리하고 기술 스택을 정의함.
  • 헥사고날 아키텍처와 멀티모듈 개념을 논리적으로 이해하고 적용하려고 함.
  • 토큰 및 인증 문제 해결을 위한 고민

2) 토큰 및 인증 문제 해결을 위한 고민

  • SSH와 ngrok 같은 기존에 배운 기술을 활용하여 새로운 해결책을 모색함.

3) 실제 구현을 위한 계획 수립

  • 단순한 개념 학습을 넘어, 직접 구현할 수 있도록 엑셀에 정리하여 논리 구조를 작성하는 계획을 세움.


아쉬웠던 점 (feat.ChatGPT)

1) 우선순위를 정하는 것이 어려움

  • 실행 단계에서 우선순위를 명확히 정하고, 작은 목표부터 차근차근 해결하는 방식이 필요할 듯.

2) 토큰 및 인증 프로세스의 미흡함

  • 젠킨스 로그인 문제로 인해 인증 프로세스를 아예 제거한 점은 보안적으로 아쉬운 부분.
  • 인증 시스템을 안전하게 관리할 수 있도록, 보안 설계와 접근 방식을 재정비할 필요가 있음.

3) 헥사고날 및 멀티 모듈 개념을 너무 복잡하게 접근함

  • 처음에는 헥사고날 아키텍처 자체에 집중했지만, 결국 중요한 것은 논리를 풀어낼 구조임을 깨달음.
  • 특정 아키텍처를 맹목적으로 따르기보다, 프로젝트에 맞는 유연한 접근이 필요함.


개선할 점

1) 백엔드 아키텍처에 대한 방법론을 공부하기

  • 헥사고날 아키텍처는 폴더 구조가 고정된 것이 아니라, 논리에 맞춰 자유롭게 변경할 수 있음을 이해하기
  • 다른 아키텍처를 조사하여 각 구조의 의미를 파악하고 비교 분석하기
  • 환경 변수와 모듈 관리 방법을 추가로 학습 예정

2) 모듈 및 환경변수에 대해 공부하기

  • 폴더 구조를 실제 아키텍처에 적용하는 방법을 학습.
  • 모듈화 방식과 환경 변수 관리에 대한 개념을 심화 학습할 예정.

3) 네트워크 보안 프로토콜 공부하기

  • SSH 및 토큰 기반 인증 방식 학습.
  • 사이트별로 SSH 키와 토큰을 저장 및 관리하는 기능을 구현할 방법 연구.


다음주 계획

1) 폴더 구조 개선 및 정리

  • 헥사고날 아키텍처를 기반으로 프로젝트 구조를 재정비
  • 도메인, 애플리케이션, 인프라 레이어를 명확하게 구분
  • 모듈별 역할을 정리하여 폴더 구조 개선

2) 인증 및 보안 강화

  • 젠킨스 비밀번호 이슈 해결 및 보안 강화
  • SSH 및 토큰 기반 인증 시스템 개선 방안 연구
  • 토큰 저장 및 관리 방식 정리 (클라이언트 vs 서버 저장 여부)

3) DevOps 환경 개선

  • Docker Compose를 활용한 환경 변수 및 설정 관리
  • CI/CD 파이프라인 설정 최적화
  • 백엔드 및 프론트엔드 분리 배포

4) 기술 스택 학습 및 적용

  • RxJS를 활용한 상태관리 심화 학습
  • 함수형 프로그래밍 개념을 적용한 백엔드 코드 개선
  • 멀티모듈 구조를 활용한 코드 리팩토링