개요 udemy 에서 junit test 인강 강의 듣던 중 해당 에러 발생 org.junit.runners.model.InvalidTestClassError: Invalid test class (이하 생략) 해결 방법 @Test 의 import 가 틀렸음 import org.junit.Test; ✨ //import org.junit.jupiter.api.Test; 💣참고 https://stackoverflow.com/questions/24319697/java-lang-exception-no-runnable-methods-exception-in-running-junits
개요 spring batch clone project 테스트 하면서 공공 API xml 데이터 parsing 테스트 진행 dto 객체에 mapping 처리 해주는 과정에서 jaxb 에러 발생 에러 Caused by: org.springframework.oxm.UncategorizedMappingException: Unknown JAXB exception; nested exception is com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 13 counts of IllegalAnnotationExceptions (생략) 클래스에 동일한 이름 "year"을(를) 사용하는 속성이 두 개 있습니다. this problem is related to the fo..
PR 요청하기전 commit 이력 정리하고 있는데, 하나의 commit에 원치 않는 파일이 포함되어 있다는 것을 깨닫게 되었다. 로컬 작업 중이고, commit 을 remote에 반영하지 않은 경우에만 수행하시길 바랍니다 commit 이력이 remote에 반영된 경우 내려받은 다른 사람들과 conflict(충돌)이 발생하여 문제 야기할 수 있기 때문입니다 해결 방법 ① 작업이력 임시 저장 :: stash $ git stash list // 확인 $ git stash push -um "임시저장(메시지작성알아서)" // -u : untracked file 까지 , -m : 메시지 작성 $ git stash list // 재확인 stash 는 스택 자료구조와 닮아 있고, LIFO로 최근 데이터의 경우 stas..
stash 명령어 Stash 명령을 사용하면 워킹 디렉토리에서 수정한 파일들만 저장한다. Stash는 Modified이면서 Tracked 상태인 파일과 Staging Area에 있는 파일들을 보관해두는 장소다. 아직 끝내지 않은 수정사항을 스택에 잠시 저장했다가 나중에 다시 적용할 수 있다 - 'git-scm.com' ① 도움말 확인 $ git stash --help ② stash 저장 목록 확인 $ git stash list ③ 작업 내용 임시 저장 $ git stash push -m "메시지 작성" 👉 이 경우 Tracked 파일이면서 Modified 상태이거나, Staging Area에 있는 파일만 대상이 됨 $ git stash push -um "메시지 작성" // untracked 파일까지 전부..
문제 페이지 작업 중에 URL이 겹치는 부분이 발생해서 원하는 view 로 이동하지 않는 것을 확인함 /* # 예시 - /log/index 입력시 로그와 관련된 index 페이지로 가기 원하지만 - (문제) 아래에 PathVariable({service}) 부분에 다 걸려버림 */ @RequestMapping(/{service}/index) // log 단어를 제외하고 여기에 다 걸렸으면 좋겠음 public String index(){ return "index" } @RequestMapping(/log/index) //내가 원하는 곳 public String logPage() { return "index" } 정보 찾아보니 표현식으로 필터링 가능하다는 것을 확인함 ! 해결 정규 표현식(regex) 사용해..
1. 형식/포맷팅 중요한 이유 ✔ 가독성에 필수적이기 때문 ① 코드를 수월하게 읽어 나갈 수 있다. ② 아마추어처럼 보이지 않는다. ③ 형식을 맞춤으로써 버그 위험을 줄인다. 2. 클린코드 포맷팅 - 행 간격 ✔ 적절한 길이 유지 행(row, 세로) : 200Lines 이하 또는 500Lines 미만 → 현업에서의 대부분의 코드들도 200Lines 정도를 유지한다. → 코드 길이가 200Lines을 넘어간다면, 클래스가 여러 개의 일을 하고 있을 수 있다.(SRP위배) "코드 길이를 200줄 정도로 제한하는 것은 반드시 지킬 엄격한 규칙은 아니지만, 일반적으로 큰 파일 보다는 작은 파일이 이해하기 쉽다." ✔ 밀접한 개념은 가까이, 개념은 빈행으로 분리 - 행 묶음은 완결된 생각 하나를 표현하기 때문에 ..
결론 주석을 작성할 시간에 함수명, 변수명을 이해하기 쉽게 수정하거나 좀 더 간결하게 코드를 짜는 방법에 대해 고민하는 게 좋다👍 1. 주석을 최대한 쓰지 말자 ✔ 주석은 나쁜 코드를 보완하지 못한다. ① 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. ② 이는 곧 작성자가 의도를 명확히 표현하지 못했다는 것을 뜻하기도 함 👉 난장판을 주석으로 설명하지 말고 개선하는데 시간을 보내자 ✔ 주석은 방치된다. ① 코드의 변화에 따라가지 못하고, 주석은 방치된다. ② 방치된 주석은 뒤에 읽는 사람에게 혼용 야기 할 수 있다. 👉 관리 하지 못 할 거면 자제하는 것이 낫다. 2. 좋은 주석 👍 1) 법적인 이유로 다는 주석 //Copyright (C) 2003,2004,2005 by Obje..
해당 장을 통해 중복👎, 가독성👍, 재사용성👍 할 수 있는 함수 작성 방법에 살펴 보았다. 1. 함수명 ✔ 동사 + 명사 # init public void initData(){..} // 데이터 초기화 # is/has/can public boolean isNumber(){..} // 숫자 여부 판단 public boolean hasData(){..} public boolean canOrder(){..} # create public Board create(){..} // 새로운 객체 생성 후 리턴 # find public Element findElement(int number){..} ✔ 전치사 + 명사 || 전치사 # to public String toString(){..} // String 변환 pub..
클린코드란 성능이 좋은 코드 의미가 명확한 코드 가독성이 좋은 코드 중복이 제거된 코드 나쁜 코드 1) 성능이 나쁜 코드 불필요한 연산이 들어가서 개선 여지 있는 코드 2) 의미 모호한 코드 이해가 어려운 코드 ( ex. 네이밍과 그 내용이 다른 코드 ) 3) 중복된 코드 비슷한 내용이 중복되는 코드 → 버그💣 발생 가능성 증가 나쁜 코드가 나쁜 이유 1) 깨진 유리창 법칙 🔳 나쁜 코드는 깨진 유리창처럼 계속 나쁜 코드가 만들어지도록 한다. 깨진 유리창 하나를 방치해 두면, 그 지점을 중심으로 범죄가 확산되기 시작한다는 이론으로, 사소한 무질서를 방치하면 큰 문제로 이어질 가능성이 높다는 의미를 담고 있다 ( 위키 백과 참조 ) 2) 생산성 저하 🕛 기술 부채를 만들어 수정을 더 어렵게 한다. ( + ..
개요 AWS EC2서버에서 스프링 부트 프로젝트 실행시 아래 에러 발생 확인 javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate 해결 datasource url에 option 추가 후 다시 build해서 실행하니 정상동작 spring.datasource.url=jdbc:mysql://디비주소:3306/디비명?characterEncoding=UTF-8&useSSL=true&enabledTLSProtocols=TLSv1.2