본문 바로가기

분류 전체보기151

TIL 230809 : 개인점검 오늘은 깃헙 리뷰 들어온 거 수정하고 프론트 개발 강의 좀 보느라 시간이 다 지나갔다. 리액트 기초를 정리할까 하다가 개인적으로 미뤄뒀던 개인점검을 TIL을 이용해서 해보려 한다. 현재 상태 가능한 것 기본적인 구현가능 표준 자바문법 숙지 (+스트림, 람다) 스프링 문법 기본적으로 가능 ORM개념 이해. SpringDataJPA시에 내부에서 일어나는 프로세스 기본적 이해 (EntityManager, Tranaction 등) SQL DB 기본적 설계. QueryDsl Github 기본적 기능 숙지 (commit, push, remote, branch, fork, pull&request, review, wiki, label, milestone) 어설픈 개념들 쿼리문 작성 테스트코드 (여러 어노테이션 복잡함,.. 2023. 8. 10.
TIL 230808 : 코드 디테일 조금씩 살려보기 (Transactional, NoArgsConstructor(AccessLevel = PROTECTED)) 오늘은 팀과제를 하며 기본 틀이 되는 코드를 짜며 오갔던 내용 중 이유가 궁금한 것들을 두가지 정리해보았다. @Transactional (readOnly = true) DB에서 불러온 객체를 수정 하면 더티체킹으로 자동으로 수정사항을 반영해줄 수 있다. 물론, 트랜잭션을 열어줘야한다. 그정도로 알고 있었고, 추가적으로 조회시에도 (readOnly = true)를 넣어줘서 해도 좋다고 들었다. 근데 오늘 팀원이 상세하게 이유를 덧붙여서 수정 뿐만 아니라, 생성, 삭제시에도 @Transactional을 달아서 트랜잭션 환경을 열어주는 게 좋다고 했다. 이유는 롤백기능이다. @Transactional의 rollbackFor 기능 트랜잭션을 열어두면 스프링에서는 디폴트값으로 UnCheckedException과 .. 2023. 8. 8.
TIL 230807 : Swagger 나도 한 번 써보기 스웨거라고 들어봤는가. API 명세를 엑셀에 일일이 써주던 시간이 헛된 시간처럼 느끼게 해준다. 설정되어 있는 API들의 설명과 request, response들의 파라미터들을 일목요연하게 보여준다. 사용법을 정리해본다. 의존성 추가 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' 위의 의존성을 추가하면 그 안에 Swagger를 포함해 기능을 사용할 수 있다. 어노테이션 클래스단에서와 각 메소드단에서 어노테이션을 달아준다. @Tag : 클래스(아마 Controller)에 해당 어노테이션과 API 이름과 설명을 달아준다. @Operation : 메소드에 해당 기능과 설명을 달아준다. Swagger UI 보기 위처럼 꼼꼼하게 .. 2023. 8. 7.
WIL 230806 : 모든 수업만큼은 끝. FACTS 이번 일주일 동안 있었던 일, 내가 한 일 : QueryDsl 때문에 엄청나게 많은 시간을 할애했다. 더불어 ORM 탄생 배경도 거슬러가며 정리하는 시간이 있었다. JPA 심화적인 측면으로 다양한 부가 기능들을 배웠다. FEELINGS 나의 감정적인 반응, 느낌 : 너무 많은 정보들이 이전 커리큘럼에 맞지 않게 섞이기도 하고 스킵되기도 하고 건너뛰어가는 식으로 진행되는 점들이 꽤나 있었다. 하나하나 OK를 해야 이후의 것들이 머릿속에 편안하게 들어오는 나로서는 어려운 시간들이었다. 어쩌겠나 우선 나에게 주어진 것들은 바꿀 수 없기에 하나하나 정리하며 이해하지 않고 싶은 마음을 눌러가며 차근차근 머리 박으며 정리했다. FINDINGS 그 상황으로부터 내가 배운 것, 얻은 것 : ORM의 발전과정.. 2023. 8. 7.
TIL 230804 : 테스트 코드의 막막함. Test 코드 짜면서 수정한 부분 : 테스트 코드의 중요성을 깨달으며 조금씩 리팩토링하며 연습중인데, 초반에 쏟아지는 어노테이션들과 혼재된 강의와 정보속에서 또다시 엄청난 퍼즐맞추기의 시간을 갖고 있다. 조금이라도 정리해보려 TIL로 기록해본다. Spring Security를 사용한다면? 인증 인가의 과정을 Spring Security를 이용해서 하는 경우 의존성을 추가해줘야 한다. 별거 아니지만 오류나서 시간 녹은 부분.. testImplementation 'org.springframework.security:spring-security-test' @EnableJpaAuditing 옮기기 기존 Main의 어플리케이션 코드에 달아둔 어노테이션. 이렇게 해두면 에러가 나고 여러모로 미래를 대비해 confi.. 2023. 8. 7.
TIL 230803 : Test하며 자잘한 깨달음 몇 개 Assert (test코드상 말고 쓰는 경우는 무엇?) save메소드 보다가 Assert를 발견했다. 테스트 코드상에서 쓰는 건 알았지만 이렇게 보니 어떻게 쓰는지 낯설었다. 자바에서 쓰여있는 설명으로는 코드를 런타임단계에서 미리 발견해주는데 쓰는 느낌이다. 위와 같은 경우에도 entity가 null일 경우에 메시지를 띄우게 되어있나보다. notNull이라는 것은 null이 오지 않는것이 일반적으로 기대된 입력값이라는 의도인듯 하다. 해당 정적 메소드를 들어가보니 Illegal예외를 발생시켜주는 간단한 메소드였다. + 테스트 코드에서 쓰던 assert~는 유닛테스트 프레임워크 JUnit의 기능이다. 그저 단어가 비슷할 뿐 기능도 유사하긴 하다. 테스트 어노테이션들 깔끔하게 정리하기.tip // @Repo.. 2023. 8. 3.