기억노트
[토비의 스프링 - Vol.2] 1장 - 1.2.2 빈 등록 방법
1. XML: 태그 - 태그를 사용하는 건 가장 단순하면서 강력한 설정 방법. - 기본적으로 id와 class라는 두개의 어트리뷰트가 필요 (id 생략 가능) ... - 은 다른 빈의 태그 안에 정의가 가능 (이때는 id, 이름을 지정하지 않음) 이러한 빈을 내부 빈(inner bean)이라 하며, 다른 빈에서는 참조할 수 없음. 강한 결합이 필요한 경우에 사용 2. XML: 네임스페이스와 전용 태그 - 태그 외에 전용 태그를 사용해 빈을 등록하는 방법 - 스프링의 빈의 두가지 분류 1. 애플리케이션의 핵심 코드를 담은 컴포넌트 2. 서비스 또는 컨테이너 설정을 위한 빈 - 스프링은 DI의 원리로 애플리케이션 컨텍스트 자신에게 필요한 정보도 오브젝트 형태로 DI해서 사용 - 이를 통해 컨테이너의 유연한 ..
[Intellij / 인텔리제이] jacoco를 이용한 테스트 커버리지 확인
서론 jacoco는 무엇일까? Java code coverage tools(jacoco) : 테스트를 실행할 때 실행되는 코드 줄을 등록하여 코드의 어떤 부분이 테스트되는지 알아내는 것을 목표로하는 도구 참고 사이트: https://en.wikipedia.org/wiki/Java_code_coverage_tools 본론 개발 환경: Intellij 테스트 환경: jUnit5 1. build.gradle 파일을 열어서, plugins 하위에 id 'jacoco' 를 입력한다. 2. Intellij 우측에 Gradle을 클릭 후 새로고침을 하면 verification이 나타난다. 그 하위에 test를 실행한다. 3. test를 실행 후 모두 성공하면, jacocoTestReport를 클릭한다. build >..
[Intellij / 인텔리제이] 프로젝트 버전 안맞는 현상 ( Execution failed for task ':compileJava'. )
원인 - intellij를 설정할 때 기본 jdk 버전에 차이 때문에 빌드 에러가 발생했다. 집 - jdk 11 회사 - jdk 1.8 해결 1. File > Project Settings > Project > Project SDK SDK 버전을 새로 다운로드 받아서 버전을 맞춘다. ( jdk 1.8 -> jdk 11) 2. File > Settings > Build Tools > Gradle - Gradle JVM 버전 설정 ( jdk 1.8 -> jdk 11) 3. File > Settings > Compiler > Java Compiler - Project bytecode version이 맞는지 확인 결론 및 참고사항 jdk 버전을 맞추지 않으면, 피곤한 일이 생긴다. 참고로 프로젝트에 jdk 버전..
[jqGrid] 테이블 첫번째 로우 선택하기
jqGrid document: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs jqGrid demo: http://trirand.com/blog/jqgrid/jqgrid.html 첫번째 로우 선택 소스 $('#gridOper').jqGrid({ url: '/test/list', postData: { ... }, colModel: [ { label: 'test', name: 'test', key: true, hidden: true}, ... ], onSelectRow: function(rowid, status){ //로우 선택시 처리하는 부분 console.log($('#gridOper').getRowData(rowid)); }, loadCom..
[ 스프링부트 / Spring Boot ] Interceptor
#시작하기 전.. 이전 글 - [ 스프링부트 / Spring Boot ] Filter 위에 글에도 언급했지만, Spring Life Cycle 에는 Filter, Interceptor, AOP, 등 많은 기능들이 존재한다. 그 중 Interceptor에 대해 이해한 것에 대해 정리를 한거라 부족한게 많을 수 있다.. 1. Interceptor는 무엇인가? Interceptor 단어 그대로 데이터를 가로채서 처리하는 영역이다. Interceptor는 컨트롤러에 접근하기 전 request, response를 받아 처리가 가능하다. 그럼 여기서 의문이 생길 수 있다. Filter와 Interceptor는 같은 역할인 것이 아닌가? 그러나 두개는 큰 차이가 있다. 그것은 바로 스프링 컨테이너에 포함 여부다. 아..
[ 스프링부트 / Spring Boot ] Filter
#시작하기 전.. 현재 온라인 강의와 토비의 스프링 책를 통해 스프링 기초에 대해 공부를 시작하고 있다. 역시 내가 모르는 것들이 너무 많았고, 그 중 Spring MVC 라이프 사이클을 모르는 내 자신에 부끄러웠다. Filter, Interceptor, AOP를 이해하려면 Spring MVC 라이프 사이클이 너무 너무 중요하다. 그것을 이제서야 깨닫고 있으며, 공부하는 중이다... 1. Filter란 무엇인가? 필터를 설명하기 전에 스프링 MVC가 작동하는 원리에 대한 사전 지식이 필요하다. 내가 아는 얕은 지식으로 예로 든다면, 1. 사용자는 웹사이트에 접속을 한다. 2. 특정 버튼, 등을 통해 서버에 정보를 조회하거나, 등록, 수정, 등을 요청한다. (Request) 3. 서버는 요청을 받는다. 일..
[ Github / 깃헙 ] Repository 합치기 - subtree
온라인강의와 실습예제를 Github에 프로젝트별로 올리다보니 Repository 목록이 엄청 많아졌다. 어떤 용도로 만들어진지 모를 프로젝트들을 전부 Github에 올렸던 것 같다. 그래서 하나의 Repository에 정리할 수 없을까하고 구글에 검색을 해봤다. 정리가 잘 된 글이 있어 내가 작업한 방법으로 재구성해서 글을 적어 본다. 작업을 하기위해서는 우선 선행되야하는 것들이 있다. 당연히도? Git을 설치하고 Github을 가입하는 일이다. 나는 Sourcetree 프로그램을 이용해서 git 명령어를 실행하고 있다. (Repository 클론도 Sourcetree를 이용했다. - Git 다운로드 : https://git-scm.com/downloads - Sourcetree 다운로드 : https:..
[Intellij / 인텔리제이] Spring Test MockMvc의 한글 깨짐
[작업환경] - Intellij 2020.3 - junit 5 테스트 코드를 작성하는 중 한글이 깨지는 현상이 발생했다. 소스상에는 장그레라는 한글이름으로 넣었는데 Body에는 ì¥ê·¸ë 로 결과가 리턴됐다. @ExtendWith(SpringExtension.class) @WebMvcTest(UserController.class) class UserControllerTest { @Autowired private MockMvc mvc; @Test public void create() throws Exception { Header mockUserRequest = Header.builder().data(user).build(); given(userService.create(any())).willRetur..