Backend/개발
-
[Spring Boot] API구현 엔티티 설계 및 테스트 기록Backend/개발 2022. 1. 23. 13:20
프로젝트 에서 Spring MVC + handlebars 구조로 개발했던 웹페이지를 API용 백엔드와 React로 구현한 프론트엔드로 분리해보기로 했다. 같은 기능이지만 리팩토링할 부분이나 조금 추가해야될 기능들을 넣고, 계층별로 유닛테스트로 테스트코드를 모두 작성해보는것이 목표이다. 진행하면서 기록할만한 내용들 @IdClass Dto와 Entity @DataJpaTest @AutoConfigureTestDatabase JPA 양방향 매핑 Member - LeagueResult OneToMany + ManyToOne Enum default값 지정 Exception handling ErrorResponse ErrorCode 서비스 계층 테스트코드 작성 @IdClass PK가 여러개인 경우 PK만을 속성으로..
-
[Spring Boot] 슬라이스테스트, Validation 유효성 검사Backend/개발 2021. 8. 28. 22:58
TIL 43일차 개인프로젝트 RepositoryTest -> ServiceTest -> ControllerTest 순서대로 작성해보면서 참가자 생성부터 다시 해보려고한다. 너무,, 가독성이 떨어져서 그냥 기록용 ㅠ_ㅠ Repository - @DataJpaTest JUnit5부터 @DataJpaTest에 @Transactional 과 @ExtendWith(SpringExtension.class)를 이미 포함하고 있다. @Test @DisplayName("참가자 등록 및 이름 조회") public void saveParticipantsTest() { // given final ParticipantsEntity entity = ParticipantsEntity.builder() .summonerName("감..
-
[Spring Boot] SVG와 PNG , 준우승 은별 표시Backend/개발 2021. 8. 19. 16:31
TIL 41일차 개인프로젝트2 svg 파일 Scalabe Vector Graphics 의 약자로, 2차원 벡터 그래픽을 표현하기 위한 XML 기반의 파일형식 ( w3c 주도하에 개발된 오픈 표준의 벡터 그ㅐ픽 파일 형식이다.) xml 텍스트파일들로 정의되어 검색화,목록화,스크립트화, 압축이 가능하다. png파일 Portable Network Graphics 비손실 그래픽 파일 포맷. bitmap으로 되어있다 PNG의 경우, 확대 축소시에 aliasing 현상이 생기는데 SVG의 경우 형태가 유지된다. 색 표현이 수학 계산이 필요하기 때문에 이미지가 복잡할수록 로딩 시간이 오래걸린다. css의 style="fill:color"로 색을 제어할 수 있다. 출처 wiki 그래서 우승자 금별에 준우승자 은별을 달..
-
[Spring Boot] GlobalExceptionHandlerBackend/개발 2021. 8. 18. 23:30
TIL 40일차 개인프로젝트 globalExceptionhandler를 만들어보려고 한다. Controller를 작성할 때 예외상황을 고려하며 처리해야 하는 작업이 늘어남에 따라, 스프링 MVC에서는 @ExceptionHandler와 @ControllerAdvice를 이용해 처리하고, ResponseEntity를 이용해 예외 메세지를 구성한다. @ExceptionHandler @controller, @RestController가 적용된 Bean 내에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해주는 기능을 한다. Controller 내부에서 호출한 Service에서 예외가 발생하더라도 잡아낸다. @ControllerAdvice AOP를 이용하여 공통적인 예외사항에 별도로 @ControllerAdvic..
-
[Spring Boot] 예외처리, 테스트코드에 관한 고민Backend/개발 2021. 8. 13. 00:12
TIL 39일차 38일차: 우승멤버 등록 controller 테스트 코드 작성하기 1 를 진행하는 중에, 스프링부트에서 JUnit을 이용한 테스트코드를 작성할 때, 어떤 로직으로 구현하는건지에 대한 정리가 스스로 필요할 것 같아서 적어본다. 테스트코드를 작성하며 개발을 처음 해보고있고, 그래서 하는것이 중요한것 ! 같기는 하지만 아직 "와 이렇게 이렇게 테스트코드를 작성해서 이걸 예방하고 이런걸 미리 테스트해보고, 통합테스트는 이런데 단위테스트는 이래서 나눠서하는거고 막 그러는구나~~ 이걸 근데 이런식으로 하는구나~~" 뭐 이런 엄청난 깨달음을 얻은 상태는 아니다. 그래서 아직 엄청 정리가 되어있진 않고, 여러 구글링한 글들과 지금까지의 경험, 그리고 오늘 동기한테 물어보면서 확인받은 내용을 바탕으로만 ..
-
[Spring Boot] 우승멤버 등록, controller 테스트 코드 작성하기 1Backend/개발 2021. 8. 12. 02:37
TIL 38일차 플젝 잠시 지원할것 들도 있고 주말에는 노느라고 공부를 쉬었다! 마요에 빨리 별 달고 아크샨 사진 넣어야되는데 테스트코드부분에서 걸려서 푸시를 못하고 있는게 .. 너무 마음에 걸린다 그치만 기능 대충 만들려고 공부 시작한거 아니니까 빨리 테스트코드 안되는거 해결하고 글 마저 쓰고 기능 업데이트 해야겠다! 일주일 넘게 잡고있으려니 답답 ㅠㅠ 대회 결과 - 우승자 등록 하기 37일차: 우승 멤버 별표표시 글에 대한 세부적인 테스트와 예외처리 과정을 나타낸글이다. 리그의 결과를 저장하기 위해 , 우승 멤버와 대회의 차수를 PostMapping으로 받아오려고 한다. 입력 값은 우승 멤버 5명의 닉네임과 몇번째 대회인지를 나타내는 리그번호 이다. 다음의 틀에 맞게 구현을 해볼 것이다. 1,2번에 ..
-
[Spring Boot] 우승 멤버 별표표시 , @ElementCollectionBackend/개발 2021. 8. 5. 23:13
오늘은 경매프로그램은 아니구,, 지금 쓰고있는 내전 사이트에서 리그 우승멤버한테 별표를 달아주라고 해서 재밌을것 같아서 살짝 해봤다~ member에 우승 컬럼 추가해서 List isWin 1, 2, 이런식으로 넣고 조회? List을 추가하려 이런 에러가 생겼다. RDB에는 컬렉션과 같은 형태의 데이터를 컬럼에 저장할 수 없어, 별도의 테이블을 생성해야 한다고 한다. @Entity가 아닌 Basic Type이나 Embeddable Class를 테이블로 생성하여 onetomany관계로 만들어준다. @CollectionTable(컬렉션 테이블 이름, 조인 설정) 사용 이때 @ElementCollection과 @Entity의 @OneToMany 차이는 @ElementCollection 연관된 부모 Entity ..
-
[Spring Boot] 팀 생성, DB 슬라이스 테스트Backend/개발 2021. 8. 5. 01:49
TIL 36일차 개인프로젝트 오늘은 할 수 있던 시간 대비 공부한내용이나 구현한게 별로 많지 않다.. 많이 쉬었다..ㅠ_ㅠ 이렇게 쪼금씩쪼금씩 하면 거의 글 50개써야 겨우 완성될 것 같은데,, 사실 그래서 TIL 카테고리에 넣은거니까,,ㅎ 나중에 블로그용으로 쓰게되면 공부한거랑 구현한거 분리해서 다시 정리해야될 것 같다다ㅏㅏ... DB에 값 넣기 일단 DB에 참가자가 등록 된 후의 구현을 먼저 해야할 것 같아서 넣어줬다. 총 20명 다음 순서로 진행된다. 일괄적으로 특정 라인의 참가자를 모두 불러와 팀에 등록하며 leader로 만들어준다. 이때 등록되는 참가자는 point가 존재하지 않는다(팀장이므로) 이때 팀이 순서대로 생성된다. 경매가 진행된다 특정 참가자가 랜덤으로 추출된다 채팅을 통해서 경매가 ..