본문 바로가기

TIL(Today I Learned)

(137)
TIL-231018(Jacoco로 코드 커버리지 측정(3)) 📝오늘 공부한 것실전프로젝트 - '행동대장' 테스트 코드 작성하기커리어톤 참여하기 📌 테스트 코드 결과JUnit과 Mockito를 활용하여 프로젝트의 테스트코드를 작성하였고, Jacoco를 이용해 total 코드 커버리지를 90% 이상 달성을 목표로 하였다.  [ 코드 커버리지 리포트 ]결과적으로 코드 커버리지 Total 95%를 달성하였다!!! 그러나 모든 요소들이 90% 이상 달성하는 것을 어려웠다. 팀원들과 함께 진행한 협업 프로젝트다 보니, 내가 직접 만들지 않은 클래스에서 사용되지 않는 코드들이 있어 완벽한 커버리지를 달성하지 못하였다. 이전에는' fostman으로 확인했을 때 잘 나오면 되는거 아니야? 왜 테스트 코드를 또 작성하지?'라고 생각했었는데, 막상 테스트 코드를 작성해 보니, 수..
TIL-231017(Jacoco로 코드 커버리지 측정(2)) 📝오늘 공부한 것실전프로젝트 - '행동대장' 테스트 코드 작성하기커리어톤 참여하기 📌 Jacoco로 코드 커버리지 측정하기[ JwtUtil의 Access Token 유효성 검사 메서드 ] public boolean validateAccessToken(String token) { try { Jwts.parserBuilder().setSigningKey(accessTokenKey).build().parseClaimsJws(token); return true; } catch (SecurityException | MalformedJwtException | SignatureException e) { log.error("I..
TIL-231016(인텔리제이 JUnit 한글 깨짐 문제) 📝오늘 공부한 것 실전프로젝트 - '행동대장' 테스트 코드 작성하기 커리어톤 참여하기 📌 ⛔문제 인텔리제이에서 테스트코드 실행 시 결과창에 한글이 깨져서 나온다. 인코딩 시 utf-8로 설정을 해놨는데도 junit 한글 인코딩을 할 때 계속 한글이 깨져서 나왔다. 💯해결 shift 키를 두 번 눌러 'Edit Custom VM Options' 을 검색하거나, Help 탭에서 Edit Custom VM Options를 들어간다. -Dfile.encoding=UTF-8 를 추가해준 뒤 프로젝트를 재실행한다! 실행 결과가 한글로 잘 뜨는 것을 확인할 수 있다.
TIL-231014(자바의정석 Chapter11 '컬렉션 프레임웍') 📝오늘 공부한 것 실전프로젝트 - '행동대장' 테스트 코드 작성하기 프로그래머스 문제풀기 자바 스터디 📌 자바의 정석 스터디 [컬렉션 프레임워크] 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의 Vector, Stack, Hashtable, Properties와 같은 기존의 컬렉션 클래스들은 호환을 위해 설계를 변경해서 나겨두었지만, 가능하면 사용하지 말것 대신, 새로 추가된 ArrayList와 HashMap을 사용하자 List인터페이스 저장순서 O, 중복 O 구현 클래스 : ArrayList, LinkedList, Stack, Vector Set인터페이스 저장순서 X, 중복 ..
TIL-231013(테스트 실행 시 예외 메시지를 가져오지 않는 문제) 📝오늘 공부한 것실전프로젝트 - '행동대장' 테스트 코드 작성하기커리어톤 참여하기프로그래머스 문제 풀기 📌 Jacoco로 코드 커버리지 측정하기⛔문제점닉네임 변경에 대한 테스트코드를 작성했는데, 그중 이미 등록되어 있는 이메일로 이메일 변경을 했을 때의 실패코드를 작성하였다.내가 기대하는 것은 "등록된 이메일이 있습니다"라는 메시지였는데, 테스트 코드를 실행했더니 null값이 나왔다. [updateNickname메서드] public CommonResponse updateNickname(UpdateNicknameRequestDto requestDto, User user) { String newNickname = requestDto.nickname(); if(userRepo..
TIL-231012(Jacoco로 코드 커버리지 측정(1)) 📝오늘 공부한 것실전프로젝트 - '행동대장' 테스트 코드 공부하기커리어톤 참여하기프로그래머스 문제 풀기 📌 Jacoco로 코드 커버리지 측정하기프로젝트 기간에는 테스트코드를 작성할 시간이 부족하기도 했고, 테스트코드를 작성하는 것이 어렵고 시간이 많이 걸린다는 이유로 쉽게 시작하지 못했었다. 그래서 Postman으로 여러 컴포넌트가 잘 연결되어  작동하는지만 확인했었다.테스트 코드를 작성하면 코드 수정 시 예상하지 못했던 부작용을 방지할 수 있다. 또, 개발자 간의 협업을 원활하게 하고, 소프트웨어를 유지 보수하는데 필요한 문서화 작업을 줄일 수 있다. 실전프로젝트의 테스트코드를 작성하여 단위테스트를 진행해보려고 한다. 각 메서드가 예상대로 작동하는지를 확인함으로써, 코드 변경 또는 업데이트 시 기존..
TIL-231011(TDD) 📝오늘 공부한 것 TDD 커리어톤 참여하기 프로그래머스 문제풀기 알게 된 점❗ [ TDD(Test Driven Development) - 테스트 주도 개발 ] 소프트웨어를 개발하는 여러 방법론 중 하나이다. 제품이 오류없이 정상 작동하는지 확인하기 위해 모든 코드는 프로그래머가 작성하고 나서 테스트를 거치게 된다. TDD에서는 제품의 기능 구현을 위한 코드와 별개로, 해당 기능이 정상적으로 움직이는지 검증하기 위한 테스트 코드를 작성한다. 이를 통해 테스트가 실패할 경우, 테스트를 통과하기 위한 최고한으로 코드를 개선한다. 최종적으로 테스트에 성공한 코드를 리팩토링 하는 과정을 거친다. RED : 테스트 실패 GREEN : 테스트 성공 REFACTOR : 리팩토링 RED : 테스트 실패 - 구체적인 하나..
TIL-231010(자료구조 & 알고리즘 5주차) 📝오늘 공부한 것 프로그래머스 문제풀기 스파르타코딩클럽 자료구조 & 알고리즘 5주차 강의 듣기 커리어톤 참여 알게 된 점❗ [ 동적 계획법 ] 동적 계획법(Dynamic Programming) 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 이것은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용한다. 동적 계획법은 여러개의 하위 문제를 풀고 그 결과를 기록하고 이용해 문제를 해결하는 알고리즘이다. 즉, 우리가 재귀함수를 풀어나갈 때 많이 했던 함수의 수식화를 시키면 된다. F(string) = F(string[1:n-2]) 라고 수식을 정의했던 것 처럼, 문제를 쪼개서 정의할 수 있으면 동적 계획법을 쓸 수 있다. 있 ..