전체 글 (69) 썸네일형 리스트형 [210603] 웹 포트폴리오 개발 일지 03 . 로그인 기능 구현을 마쳤다. 30일에 마치고 몸이 안 좋아서 이틀을 쉬었다. 다음 개발 단계에 들어가기 전에, 개발과정을 되돌아보기로 했다. https://github.com/hjk997/hjk_portfolio_project/commits/master hjk997/hjk_portfolio_project 포트폴리오 프로젝트 . Contribute to hjk997/hjk_portfolio_project development by creating an account on GitHub. github.com 위 링크는 프로젝트를 진행중인 github 주소다. 5월 3일에 첫 커밋을 한 것을 알 수 있다. ※ 구현한 기능 - 프로젝트 환경 세팅 - thymeleaf 사용한 매핑, html의 중복 코드 분리 .. [210530] junit에서 private 메소드 테스트하기 - reflection 사용 . 테스트 코드를 작성하던 중, 다른 클래스에 있는 private 메소드를 테스트해야 하는 상황이 발생했다. 테스트 때문에 메소드를 public으로 지정할 수 없었고, 테스트 코드에 메소드를 새로 생성할 수도 없었다. 구글링을 통해 reflecton을 사용해서 private 메소드에 접근할 수 있다는 사실을 알게 되었다. java.lang.Reflection 런타임 중에 메소드나 클래스를 검사하고 작동시킬 수 있게 해주는 API이다. 리플랙션 객체를 사용해서 리플렉션 객체가 가지고 있는 클래스나 메소드의 정보를 알아낼 수 있다. 또한 런타임 중에 메소드를 실행할 수도 있다. 내 경우에는 아래와 같이 코드를 작성해서 private 메소드를 테스트할 수 있었다. LoginController loginCont.. [210530] . 프로젝트 진행이 생각보다 재미있다. 그런데 원하는 기능구현에 급급해서 구글링하는 내용이 머릿속에 안 들어오는 것 같다. 내가 그냥 긁어서 쓰고 있는 건 아닌가 걱정이 된다. 빨리 문제를 해결하고 다음 구현을 하고 싶은 마음이 커서... 계속 이런 문제가 생기는 것 같다. 프로젝트가 늦게 완성되더라도 시간을 내서 블로그에 관련 기술 정리를 하고 싶다. 오늘은 테스트 케이스를 작성하고 테스트 코드를 짰다. 학부시절에 교수님이 그렇게나 테스트 케이스를 작성하라고 말씀하셨는데 실제로 짜본 건 처음이다. Assertion이 생소해서 자세히 공부해야겠다는 생각이 든다. 강의에서 @Transactional을 붙이면 데이터베이스 처리 후 롤백이 된다고 했는데, 내 코드에서는 이상하게 안 된다. 아직까지는 빨리 테스.. [210527] Thymeleaf th:insert & th:replace . jsp에는 forward, include같이 외부 파일의 코드를 현재 파일에 가져올 수 있는 기능이 있다. thymeleaf에서는 th:insert, th:replace가 그 역할을 한다. 이떄 jsp는 전체 코드만을 가져올 수 있는 반면에, 타임리프는 필요한 부분의 코드만 fragment(부분화)를 통해서 가져올 수 있다. ※ fragment th:fragment 태그를 사용해서 코드의 일부를 부분화할 수 있다. ... 이렇게 작성하면, div 태그가 th:fragment 태그를 통해서 nav라는 이름으로 부분화 된 것이다. 부분화를 하면 코드를 쉽게 재사용할 수 있다. th:insert : th:insert 태그가 선언된 태그 사이에 코드를 삽입한다. th:replace : th:replace가 .. [210521] 매핑 문제 & 정적 리소스 경로 읽어오기 문제 해결 . 매핑 문제를 해결했다. 사실 프로젝트를 새로 생성하고 매핑이 되는지 확인한 다음에 덮어씌운 게 다라서 해결했다고 할 수도 없다. 프로젝트를 아직 많이 진행하지 않았기 때문에 이렇게 할 수 있었다. 똑같이 코드를 복붙했는데 새로 생성한 프로젝트에서는 잘 되었다. 전에 생긴 문제는 왜 그랬던건지 아직도 모르겠다. 다른 삽질을 하다가 설정을 잘못 건드리기라도 한 걸까? 다시 에러가 생겼을 때 잘 해결할 자신이 없으니... 다시 에러가 안 생겼으면 좋겠다. 매핑 문제가 해결되니 정적 리소스 경로 문제도 금방 해결할 수 있었다! 역시 내가 경로를 잘못 입력한 게 문제였다. 이전 프로젝트에서는 resources 아래에 css, js, assets 폴더를 두고, index.html에서 css로 접근할 때의 경로를.. [210520] lombok cannot find symbol 해결 & 매핑 실패 문제 지난 포스팅에 작성했던 lombok cannot find symbol 문제는 해결했다. spring boot가 버전 관리를 지원해주는 걸 알고, gradle에 추가한 모든 종속성의 버전을 표기하지 않도록 해서 build했더니 문제가 생기지 않았다. 기초지식이 중요함을 다시 깨달았다. 버전끼리 충돌해서 문제를 일으켰던 모양이다. https://m.blog.naver.com/light-star/221969272088 Lombok cannot find symbol 에러 원래는 잘 됐었는데.. 갑자기 lombok @Getter를 설정했음에도 불구하고 컴파일 과정에서 필드변수들의 get... blog.naver.com 위 링크는 지난 게시글에도 첨부했던 링크다. 매핑은 여전히 안 된다. 최신 동향이 web.xml.. [210518] . 되는 게 없다... @GetMapping을 사용했을 때 URL 매핑이 안 되는 문제가 생겨서 해결하려 해보고 있으나, 구글링을 해서 나온 온갖 솔루션을 대입해봐도 해결이 되지 않는다. DispatcherServlet이나 ViewResolver를 수정하라는 글이 많이 보이지만, 다른 사람들이 만든 예제를 봤을 때 @GetMapping 으로 html을 가져오는 간단한 코드라서 수정을 하지 않고도 돌아가야 할 텐데... 설정을 하다가 뭘 잘못 건드린걸까. 기본적인 원리에 대해 모르니 그냥 막막하다. 프로젝트를 다시 만들어야하나 하는 생각도 있다. 설상가상으로 잘 돌아가던 롬복도 갑자기 안 된다ㅋㅋㅋ 1주일 전에 롬복을 사용하고, 테스트를 했을 때 통과도 되었는데 지금 다시 하면 실패한다. 찾아보니 나같은 .. [210517] 다익스트라 알고리즘 - java . 다익스트라 알고리즘(Dijkstra Algorithm)은 그래프에서 두 정점 간의 최단 경로를 찾는 알고리즘이다. 시작점과 끝점이 주어져있을 때 사용할 수 있으며, 이를 응용해서 최단 경로 트리를 만드는 것도 가능하다. 설명을 위해, 임의로 위와 같은 그래프를 만들었다. 가중치가 있는 방향 그래프다. a에서 e로 가는 최단 경로를 구한다고 가정하자. 정점이 5개 있기 때문에, 크기가 5인 1차원 배열에 최단 거리의 값을 저장할 것이다. 1) 시작점과 연결된 모든 정점에 대해서, 시작점과 해당 정점의 최단 거리를 구한다. 시작점인 a와 연결된 정점은 b와 c가 있다. a에서 b를 잇는 간선의 가중치는 3, a에서 c의 경우는 4이므로 아래와 같이 표를 채웠다. a b c d e a ∞ 3 4 ∞ ∞ 최.. 이전 1 2 3 4 5 6 7 ··· 9 다음