HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
[팀12] 기부니🧡
[팀12] 기부니🧡
/
🏷️
협업 관리
🏷️

협업 관리

상태
back-end
담당자

백엔드만의 협업 규칙


  • 슬랙 활발하게 참여하기
  • 1시간 이상 해결하지 못한 이슈가 있다면 다른 팀원에게 도움 청하기
 
 

역할 분담


도메인


하정
  • 회원(Security)
  • 센터(Security)
  • 관심센터
부희
  • 기부게시판 : 기부글/기부요청글
  • 태그 : 기부글 용/기부요청글 용
  • 댓글 : 기부글 용/기부요청글 용
 
권규
  • 채팅
  • 거래예약
  • 알림(WebSocket)
  • 활동게시판
 

주요 사용 기술


  • 배포 : AWS EC2 + CodeDeploy + Github Actions ⇒ 부희
  • 로그인 : Spring Security + JWT ⇒ 부희
  • 회원가입 : Spring Boot + smtp 활용한 이메일 인증 ⇒ 하정
  • 알림/채팅 기능 : Spring Boot + WebSocket + (stomp) ⇒ 권규
  • 공공 오픈 API ⇒ 하정
  • 이미지 등록 : S3 관련 설정 ⇒ 부희, 하정
  • 게시글 동적 검색 : Querydsl (게시글 동적 검색 : 분류/제목 등 여러 필터링) ⇒ 부희
 
 

코드 컨벤션


우아한 테크코스) 개발 피드백, 팁 모음 (종합)
우아한테크코스 를 진행하며 접하게된 Java 개발관련 피드백과 팁들을 모아보자. 프로그래밍에 당연히 정답은 없다.하지만 상황마다의 최선은 있으니까 이에 관한 내용들을 숙지하자. 머리속에 무의식적으로 있기도, 잊혀지기도 하므로리스팅하고 가끔 한번씩 읽어보며 상기하자. 개발초반 연습을 위해 단정지어진or극단적인 몇가지 항목들도 포함되어 있다. 가장 자주 듣는 말이지만, 당연히 이 모든것들이 정답은 아니다 ■ 기능 목록을 유지한다.기본적으로 기능목록 단위별로 commit한다.계속해서 업데이트하는 살아있는 문서를 만들자.구현하다보면 설계와 목록이 계속해서 바뀐다.
우아한 테크코스) 개발 피드백, 팁 모음 (종합)
https://os94.tistory.com/130
우아한 테크코스) 개발 피드백, 팁 모음 (종합)
  • 기본적인 코드 스타일 : Google Java Style Guide & 소나린트
 
  • DTO 관련
    • 네이밍 : ResourseRequest, ResourseResponse
    • 객체 생성 : 생성자, 빌더, 정적 팩토리 메서드
    • DTO와 Entity 형 변환 : (정적 팩토리 메서드 사용해도 좋을 듯)
      • 필드가 3개 이상 → @Builder / 그 외 → 정적 팩토리 메서드
      정적 팩토리 메서드는 왜 사용할까?
      정적 팩토리 메서드를 들어본 적이 있는가? 프로그래밍을 시작한 지 얼마 안된 사람도 정적 팩토리 메서드라는 단어를 한번쯤은 들어봤을 것이다. 그리고 아마 프로그래밍을 조금 해본 사람들은 정적 팩토리 메서드 라는 용어에 많이 익숙해져 있고 실제로도 자주 사용하고 있을 것이다. 이 글은 정적 팩토리 메서드 개념이 익숙하지 않은 사람들을 위한 글이다.
      정적 팩토리 메서드는 왜 사용할까?
      https://velog.io/@ljinsk3/%EC%A0%95%EC%A0%81-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C%EB%8A%94-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C
      정적 팩토리 메서드는 왜 사용할까?
 
  • Lombok 어느 정도까지 사용할 것인가
    • 실무에서 Lombok 사용법 | Popit
      해당 코드는 Github 에 공개되어 있습니다. Lombok은 자바 컴파일 시점에서 특정 어노테이션으로 해당 코드를 추가할 수 있는 라이브러리입니디. 이는 코드의 다이어트? 가독 성 및 유지 보수에 많은 도움이 됩니다. 하지만 편리한 만큼 잘못 사용하기 쉬운 것이 Lombok 입니다. 거창하게 실무에서 사용하는 Lombok이라고 표현했지만 어디까지 저의 주관적인 생각이기 때문에 각자 환경과 상황에 알맞게 사용하는 것이 바람직합니다.
      실무에서 Lombok 사용법 | Popit
      https://www.popit.kr/%EC%8B%A4%EB%AC%B4%EC%97%90%EC%84%9C-lombok-%EC%82%AC%EC%9A%A9%EB%B2%95/
      실무에서 Lombok 사용법 | Popit
      Lombok에서 자주 사용되는 어노테이션
      Lombok 라이브러리에서 제공하는 어노테이션 public class User { @Getter @Setter private String name; } 롬복에서 가장 많이 사용되는 어노테이션으로 위처럼 특정필드에 선언하면 자동으로 getName(), setName() 메소드를 생성해준다. 또한, 특정 필드가 아닌 클래스에 @Getter @Setter 을 선언해줄 경우, 모든 필드에 접근자와 설정자가 자동으로 생성된다. @NoArgsConstructor 은 파라미터가 없는 기본 생성자를 생성해준다.
      Lombok에서 자주 사용되는 어노테이션
      https://happiestmemories.tistory.com/40
      Lombok에서 자주 사용되는 어노테이션
    • @Setter , @Data 금지
    • 되도록 @Getter, @Builder , @NoArgsConstructor 위주로 사용
 
  • 예외처리 어떤 식으로 할 것인가
    • Spring Exception Handling
      Java 에는 Checked Exception 과 Unchecked Exception 이 존재합니다. 이 둘은 헷갈리기 쉽지만 사실 큰 차이가 존재합니다. 예외 처리 필수 try catch 로 잡아서 예외를 처리하거나 상위 메소드로 넘겨줘야함 Transaction 기본 롤백 대상이 아니라서 롤백 처리하려면 추가 처리 필요 컴파일 단계에서 체크 예외 처리 필수 아님 Transaction 롤백 대상 @Transactional rollbackFor 에 기본 옵션으로 들어가있기 때문에 예외 발생 시 롤백 처리됨 런타임 단계에서 체크 Spring 에는 HTTP Status 응답 처리를 위한 여러가지 방법이 있습니다.
      Spring Exception Handling
      https://bcp0109.tistory.com/303
      Spring Exception Handling
      [Spring] 스프링 Error 상속 관계를 구성해서 Handling 하기!
      이번 글에서는 프로젝트를 진행하면서 Spring Error Handling을 어떻게 할 수 있었는지에 대해서 정리해보겠습니다. Spring 에서는 ControllerAdvice, ExceptionHandler 라는 어노테이션을 제공해주기 때문에 쉽게 에러 핸들링을 할 수 있습니다. 하지만 너무 편리했는지.. 어노테이션에만 너무 의존해서 모든 에러가 생길 때마다 전부 해당 어노테이션으로 에러를 등록하게 되었습니다.
      [Spring] 스프링 Error 상속 관계를 구성해서 Handling 하기!
      https://devlog-wjdrbs96.tistory.com/348
      [Spring] 스프링 Error 상속 관계를 구성해서 Handling 하기!
      velog.io
      https://velog.io/@waldo/%EC%97%90%EB%9F%AC%EC%B2%98%EB%A6%AC101-Enum%EC%9C%BC%EB%A1%9C-%EC%97%90%EB%9F%AC%EC%BD%94%EB%93%9C-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0
    • @ControllerAdvice + @ExceptionHandler : 도메인 별로 발생할 수 있는 예외들을 한 곳에 모아서 관리
    • 커스텀 ErrorResponse : 응답에러를 반환할 때 발생시각 + http status + 에러코드 + 에러메시지 포함
 
  • 테스트 코드는 어느 영역까지 할 것인가
    • Spring Boot - 스프링 부트 통합테스트 방법과 팁(Spring boot Integration Test)
      Spring Boot 테스트 이번 포스팅에서는 Spring Boot에서 통합테스트하는 방법에 대해서 알아보려고 합니다. https://medium.com/@ssowonny/%EC%84%A4%EB%A7%88-%EC%95%84%EC%A7%81%EB%8F%84-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%9E%91%EC%84%B1-%EC%95%88-%ED%95%98%EC%8B%9C%EB%82%98%EC%9A%94-b54ec61ef91a 테스트 코드의 중요성은 아무리 강조해도 부족합니다. Code Link - https://gitlab.com/galid1/spring-boot-integration-test/-/tree/master/src/main/java/com/galid/jpastudy 필요한 전체 클래스입니다. 테스트할 대상 어플리케이션의 기능은 다음과 같습니다. Jpa 설정 및 테스트 db(h2) 설정을 진행합니다. UserEntity 입니다. userName 필드를 가지고 있습니다. UserRepository입니다.
      Spring Boot - 스프링 부트 통합테스트 방법과 팁(Spring boot Integration Test)
      https://galid1.tistory.com/735
      Spring Boot - 스프링 부트 통합테스트 방법과 팁(Spring boot Integration Test)
    • 컨트롤러단 → 통합테스트