IT 개발 관련/[TIL]

[항해 취업 리부트 코스] 개인프로젝트 1주차 WIL

Baileyton 2024. 6. 24. 21:33
728x90
  • 이번 주 항해 취업 리부트코스에서 내가 구현한 기능은 무엇인가요?
    • 회원 관리 기능
      • 회원가입
        • 개인정보 암호화
      • 로그인 및 로그아웃 기능
        • JWT 토큰 활용
    • 상품 관리 기능
      • 상품 리스트 및 상세 정보 조회
  • 해당 기능을 구현하기 위해, 어떤 기술적 의사결정을 거쳤나요?
    • 고민한 기술의 종류들에는 무엇이 있나요?
    • JAVA 17버전 선택
      • 8, 17, 11 버전을 사용을 많이 하고 있고, 8과 17을 사용하는 점유율이 비슷하였고,
      • 스프링 부트 3.xx 버전 부터는 Java 17 이상을 지원한다.
      • Java 21 버전부터 Virtual Threads - 수백만 개의 가벼운 스레드를 지원하여 높은 동시성을 효율적으로 처리해주는 기능
      • 안정성과 검증된 기능과 성능을 제공하는 17버전
    • DB 선택
      • MySQL의 장점:
        • 성능: 일반적으로 빠른 속도를 보장하며, 대량의 트래픽을 처리할 때 유리합니다.
        • 간편성: 설치와 설정이 쉽고, 관리가 간편합니다. 특히 간단한 애플리케이션에서 많이 사용됩니다.
        • 중소규모 시스템: 중소규모 시스템에서의 사용이 적합하며, 읽기 쓰기가 많은 경우에도 잘 작동합니다.
      • PostgreSQL의 장점:
        • 데이터 무결성: PostgreSQL은 ACID (원자성, 일관성, 고립성, 지속성) 트랜잭션을 지원하여 데이터 무결성을 보장합니다. 트랜잭션 롤백 및 복구가 잘 지원됩니다.
        • 일관성: 강력한 일관성을 제공하며, 복잡한 쿼리 및 데이터 모델링을 지원합니다.
        • 확장성: 대규모 데이터베이스와 복잡한 쿼리를 처리하는 데 적합하며, JSON 데이터 형식도 지원합니다.
      • 결과적으로 사용 용이하고, 호환성, 안정성, 효율성, 비용적 측면에서 MySQL을 사용하기 결정하였다.
  • 이번 주 겪은 트러블 슈팅이 있다면 무엇인가요?
    • 문제와 원인은 무엇이었나요?
      • MySQL의 transaction_isolation 에러
        • MySQL의 transaction_isolation 레벨이 설정 되어 있지 않았음.
        • 해결 방법 1 : MySQL의 트랜잭션 격리 수준을 READ COMMITTED로 변경
        • 해결 방법 2 : MySQL 재설치 ( 트랜잭션 격리 레벨 조회가 되지 않았을 때)
      • docker-compose up 에러
        • "level=warning msg='C:\Intellij\mymarket\docker-compose.yml: version is obsolete'"
          • docker compose 파일 버전 업데이트 
        • error during connect: this error may indicate that the docker daemon is not running"
          • Docker 데몬 실행 확인
  • 이번 주 진행된 개인 프로젝트에서 얻은 인사이트는 무엇인가요?

이번 주 개인 프로젝트를 진행하면서, 기술적 의사결정의 중요성과 다양한 기술 스택과 그 장단점을 비교하며 최적의 선택을 내리는 과정,  개발 환경 구축을 통해 개발 생산성을 향상 시킬 수 방법 등을 알게 되었습니다.

 

  • 항해 개발자 취업 리부트 코스를 수강하고 작성한 콘텐츠 입니다.
 

IT 커리어 성장 코스 항해99, 개발자 취업부터 현직자 코스까지

항해99는 실무에 집중합니다. 최단기간에 개발자로 취업하고, 현직자 코스로 폭발 성장을 이어가세요. 실전 프로젝트, 포트폴리오 멘토링, 모의 면접까지.

hanghae99.spartacodingclub.kr

 

728x90