우아한테크코스 7기 BE 기록
우선순위를 정하고 효과적인 학습 방법을 고민하는 것이 중요하다.
| 미션 이름 | 미션 주제 | PR |
|---|---|---|
| Tomcat 구현하기 | 1단계 - HTTP 서버 구현하기 | PR |
| 2단계 - 로그인 구현하기 | ||
| 3단계 - 리팩터링 | ||
| 4단계 - 동시성 확장하기 | ||
| @MVC 구현하기 | 1단계 - @MVC 프레임워크 구현하기 | PR |
| 2단계 - 점진적인 리팩터링 | ||
| 3단계 - JSON View 구현하기 | ||
| JDBC 라이브러리 구현하기 | 1단계 - JDBC 라이브러리 구현하기 | PR |
| 2단계 - 리팩터링 | ||
| 3단계 - Transaction 적용하기 | ||
| 4단계 - Transaction Synchronization 적용하기 |
협업과 소통이 중요하다. 나의 생각을 논리적으로 설명하고, 다른 사람의 의견을 경청하며, 함께 더 나은 방향을 찾아가는 과정이 필요하다.
| 서비스명 | 설명 | 링크 |
|---|---|---|
| 보따리 | 어떤 순간에도 빠짐없이 챙길 수 있도록 돕는 체크리스트 및 알림 서비스 | GitHub 저장소 |
| 플레이스토어 |
- 코드 컨벤션
- Git 브랜치 전략
- 기술 스택 및 버전 선정
- 팀 문화
- 개발/운영 서버 구축
- 배포 자동화 파이프라인
- 로깅 전략
- 롤백 전략
- 모니터링 도구 선정 이유
- DB 계정 권한 정책
학습해야 하는 내용의 범위가 넓고 깊다. 절대적인 진리나 정답은 없으며, 왜?를 고민하고 함께 합의하는 과정이 중요하다.
| 미션 | 키워드 | PR |
|---|---|---|
| 방탈출 예약 관리 | Web, HTTP, Spring Boot, Jdbc, RDBMS | 페어 미션 PR |
| 개인 미션 PR | ||
| 방탈출 사용자 예약 | 예외 처리, Interceptor, Argument Resolver | 페어 미션 PR |
| 개인 미션 PR | ||
| 방탈출 예약 대기 | JPA 도입, 도메인 간 강결합 | 페어 미션 PR |
| 개인 미션 PR | ||
| 방탈출 결제/배포 | 외부 API, 배포, 로깅 | 페어 미션 PR |
| 개인 미션 PR | ||
| 레벨2 글쓰기 | 레벨2까지 나의 성장 여정 | 미션 PR |
| 레벨2 파이널 미션 | 제한시간 내 AI 사용 없이 나만의 예약 서비스 API 제작 | 미션 PR |
- add 메서드 결과 반환을 위한 재조회 필요성 검토
- 존재 여부 확인을 위한 쿼리 개선, EXISTS vs COUNT(*), 인덱스
- 메서드의 원자적인 실행을 보장하기 위한 @Transactional
- 무조건 fetch join으로 다 가져오는 것이 좋을까?
- 도메인에 대한 이해와 규모에 관한 합의로 결정할 수 있다.
- XXService를 조회성과 명령성으로 분리
- 복잡해지는 요구사항 속 도메인 간 강결합 해소
- 이벤트 발행-수신 구조를 활용한 도메인 간 느슨한 결합
- 외부 API Connection Timeout, Read Timeout 설정
- 예약 삭제와 취소의 차이
- 남겨야 할 로그에 대하여
- @TransactionalEventListener(AFTER_COMMIT)에서 업데이트가 반영되지 않던 문제 분석
- 완벽한 논리보다, 실패해도 리스크가 작은 선택을 빠르게 시도해 보는 것이 나에게 도움이 될 것 같다.
- 내가 성장한 부분과 부족한 부분을 인지하는 미션이었다.
- 기획에서 과도한 설계로 인해 정작 완성하지 못한 부분이 있었다.
현장은 클린코드도 중요하지만 마감 시간 내에 동작하는 코드를 구현하는 것이 더 중요하다.
| 미션 | 키워드 | PR |
|---|---|---|
| 로또 | 단위 테스트 | 페어 미션 PR |
| 개인 미션 PR | ||
| 출석 | TDD | 페어 미션 PR |
| 개인 미션 PR | ||
| 블랙잭 | 클린 코드 | 페어 미션 PR |
| 개인 미션 PR | ||
| 장기 | OOP, DB | 페어 미션 PR |
| 개인 미션 PR | ||
| 레벨1 글쓰기 | 유연함 강화 스터디 회고 | 미션 PR |
- 인터페이스의 default 메서드와 구현체 검증 책임의 위치 고민
- 코드의 일관성은 가독성을 높이고, 유지보수성을 높인다.
- 조건문의 비교 순서,
MAX > MIN보단MIN < MAX가 더 직관적이다. - 조건문 분리(메서드 또는 변수로 추출) 행위에 관한 일관성을 높인다.
- 조건문의 비교 순서,
- 불변 객체는 항상 좋은가?
- 개행, 공백, 주석, 테스트 코드의 일관성은 신뢰성 측면에서 중요하다.
- 새로운 환경에 대한 안내(실행 방법 등)는 당연하게 있어야 한다.
- 특정 DB의 기능을 사용하여 비즈니스적인 문제를 풀지 않아야 한다.
- 급하게 답변을 남기는 것보다 조금 더 고민하고 일관된 답변을 남기는 것이 좋을 것 같다.
- 인지하지 못했던 나의 부족한 부분을 인지할 수 있었다.
다양한 사람과 함께 성장하기 위한 준비하는 과정이다. 그 과정에서 나 스스로를 돌아보고 나아질 수 있는 방법을 고민한다.
| 미션 | PR | 회고 |
|---|---|---|
| 문자열 덧셈 계산기 | 미션 PR | 회고 |
| 자동차 경주 | 미션 PR | 회고 |
| 로또 | 미션 PR | 회고 |
| 편의점 | Repository | 회고 |