-
Notifications
You must be signed in to change notification settings - Fork 0
📚 백엔드 개발 문서
Dabeen Jeong edited this page Jul 13, 2023
·
5 revisions
- java : 11
- 모든 팀원들이 사용해온 자바 버전이다.
- 더 낮은 버전을 안 쓰는 이유는 팀원들에게 익숙한 기능이 낮은 버전에서는 지원하지 않을 수 있기 때문이다.
- 더 높은 버전을 안 쓰는 이유는 따로 배워야하고, 활용을 제대로 못할 것으로 판단된다.
- spring boot : 2.7.13
- 3.x 버전은 Java 17부터 지원 → Java 11을 지원하는 가장 최신 버전이 2.7.13
- mysql 8.0
- 검색했을 때 참고 자료가 많다.
- MySQL은 버전이 높아질 수록 안정성과 성능이 개선되고 있다.
- spring data jpa
- 기본 CRUD에 대해 직접 메서드를 만들어도 되어서 생산성이 늘어난다.
- gradle
- junit5
- OAuth2.0
- 카카오 로그인을 사용할 예정
- 회원가입 페이지를 따로 만들어서 가입하는 것보다 사용자 정보를 얻기 쉽다.
- rest docs, swagger
- 테스트 코드로 문서화를 진행하면서, 클라이언트에서 편하게 API 테스트를 할 수 있다.
- [REST Docs]
- 테스트 코드로 문서를 관리할 수 있다는 장점
- 클라이언트가 직접 API 테스트를 할 수 없다는 단점
- [Swagger]
- UI가 깔끔하다는 장점
- 백엔드단 코드가 깔끔해지지 않는다는 단점
- [REST Docs]
- 테스트 코드로 문서화를 진행하면서, 클라이언트에서 편하게 API 테스트를 할 수 있다.
- 시간 : 평일 17:00-17:30
- 장소 : 회의실
- 방법
- pr 작성자가 구현한 코드 플로우 설명
- 해당 코드에 대한 논의
- 당일 자정 안에 코멘트 또는 approve (주말, 공휴일 제외)
- 나머지 3명의 approve가 있어야 merge
- ATDD 방식으로 개발
- 개발 중에 3시간 안에 해결되지 않으면 논의하기
- 매주 금요일 다음 스프린트를 정할 때, 페어 프로그래밍이 필요한지 결정
- wooteco-style 자바 컨벤션을 따른다.
- 변수와 메서드 파라미터 final로 선언
- dto명
- controller로 들어오거나 나가는 dto : ~request / ~response
- 그 외 dto : ~dto
-
@Transactional(readOnly = true)
를 클래스 레벨에 붙이고 변경이 필요한 메서드에서만 재정의
-
코드 선언 순서
public class FunEat { // private static final // 상수 // 클래스 변수 // 인스턴스 변수 // 생성자 (파라미터 개수 순서) // 팩토리 메서드 // 일반 메서드 (호출 순서) // getter, setter // equals, hashCode, toString }
-
메서드 파라미터에서 순서
- final과 어노테이션 :
@Pathvariable final String name
- @Valid와 어노테이션 :
@Valid
@RequestBody
- final과 어노테이션 :
-
class에 붙는 어노테이션 : 길이 순서
@Controller @RequestMapping(...) ... public class FunEat { ... }
-
필드와 필드 사이는 어노테이션이 하나라도 있을 경우 줄바꿈으로 구분을 하고, 어노테이션이 존재하지 않으면 전부 붙여서 작성한다.
- 어노테이션이 하나라도 존재하는 경우
public class FunEat { @Id private final Long id; private final String name; private final String contents; }
- 어노테이션이 존재하지 않는 경우
public class FunEat { private final Long id; private final String name; private final String contents; }
- 테스트명은 한글로 작성한다.
- OOO은_OOOO을_할_수_있다
- OOO인_경우_예외가_발생한다
- 테스트 코드에서 given, when, then 주석을 추가
- 둘 다 같이 있을 경우 : // when & then
- 인수 테스트, 문서 테스트 - RestAssured
- 서비스 테스트 - 실제 데이터
- 📚 프론트엔드 개발 문서
- 🌏 브라우저 지원 범위
- 🧪 프론트엔드 테스트 전략
- [웹 접근성] a tag와 button의 차이는 무엇일까?
- multipart
- SvgSprite 컴포넌트 사용하기
- [INFRA] 프론트엔드 CI/CD 구축
- [기술 검토] 리액트 쿼리 도입 이유
- [기술] 로그인 기능 도입기
- 🐛 S3 배포 캐싱 오류
- 이미지를 위한 S3와 Cloudfront 설정하기
- 📓 성능리포트 ‐ 펀잇 서비스 최적화하기
- 펀잇 SEO 개선하기
- 📚 백엔드 개발 문서
- intellij에서 private DB 연결하기
- [INFRA 0] 전체 infra 구조 - ver1
- [INFRA 1] infra 서버 세팅
- [INFRA 2] 백엔드 CI/CD 구축
- [INFRA 3] 백엔드 DB 연결
- [INFRA 4] 깃허브 PR 라벨을 기준으로 젠킨스 빌드하기
- [LOG] 로그 세팅
- [Trouble Shooting] 일관된 테스트 격리 적용하기
- [Trouble Shooting] 프록시로 동작하는 @Transactional, 전파 옵션 관리