Kotlin을 이용하여 스프링 부트 프로젝트 생성하기 - 사용 IDE : IntelliJ IDEA Ultimate 일단 유료버전이지만 인텔리제이를 이용하여 코틀린 스프링부트 프로젝트를 생성하는 모습을 보여드리겠습니다. IntelliJ IDEA Ultimate 버전 - 먼저 메뉴를 따라 프로젝트를 생성해줍니다. - Spring Boot Initializr를 선택한 후 Next를 눌러줍니다. - 그 다음엔 프로젝트 루트 구조명들을 짓고, Maven 혹은 Gradle 중 하나를 선택합니다. ( 필자는 개인적으로 Maven을 많이 써서 Maven으로 선택했습니다.) - 그 다음 Language 선택시, 기본 선택되어 있는 java말고 Kotlin으로 선택합니다. - Next를 눌러줍니다. - 여기부터는 스프링 ..
Vue CLI로 프로젝트를 생성하고 나서 Vue 개발을 진행하다 보면 다음과 같은 화면을 많이 마주할 것이다. 뭐 대충 이런 에러메시지를 화면 전체에 띄워서 "당장 이 에러를 수정하지 않으면 너의 어플리케이션은 너또한 건드릴 수 없을 것이야" 라는 직접적인 표시로 보인다.. 하지만 내가 이 에러는 마주하는 이유는 바로.... 선언된 var a 라는 변수가 10을 할당받았는데... 이걸 사용하지 않아서 발생하는 에러이다. 단지 warn 정도일 뿐 에러는 아니라는 것이다. 그런데도 ESLint라는 녀석은 이걸 아주 강력하게 잡고 개발하는데 생산성을 엄청나게!!! 저하시키곤 한다. 이걸 수정하고 나면 다시 화면을 왔다 갔다하는 시간이 너무 아깝다!!! ESLint 에러 해결 현재 이 프로젝트는 vue crea..
logback.xml 파일을 이용하여 로그 남기기 - Mybatis를 이용하여 쿼리를 실행할 때 동적으로 작성한 쿼리의 실제 실행 모습이 보고싶었음. - log4j를 이용했을 때는 net.sf.log4jdbc.Log4jdbcProxyDataSource 클래스로 DataSource를 만들어야 했으므로 설정을 변경하는 일이 있었음. (application.properties 나 Config 파일을 수정해야하는 경우) - 그냥 DEBUG와 단순 INFO로 켜고 끄는 기능을 찾고 싶었음. logback 파일 생성 ver. 1 %d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n - 처음에는 단순히 로그를 좀 더 자세히 찍고 실행되는 SQL 쿼리를 보고 싶었음. - ro..
자바 혹은 다른 언어 프로그래밍을 할 때, 디버깅은 필수적인 단계입니다. 내가 코드를 작성하고 완전하지 않은 코드에서 발생하는 버그를 발견하고 수정하는 작업인데요. 모든 IDE에서 제공하는지는 잘 모르겠지만 제가 사용해봤던 인텔리제이(IntelliJ)라는 소프트웨어에서는 디버깅 모드를 제공해줍니다.(브라우저에서 제공하는 디버깅모드와 같습니다.) 그런데 어느 날, 회사에서는 내부망을 구축해서 DB를 내부망을 통해서만 붙을 수 있는 구조였고 그런 과정에서 서버 프로젝트 하나를 켜는데 많은 시간이 걸렸습니다. 내용을 보니 "breakpoint가 너무 많아서 속도가 많이 저하될 수 있다"는 영문 메시지였습니다. 하나하나 breakpoint를 지워가며 속도를 올려보려 했지만 정확히 어디에 breakpoint를 설..
안녕하세요.!! 오늘은 단방향이겠지만 블로그 운영 관련해서 소식을 자랑해보고 싶어서 글 하나 더써보겠습니다.!! 제가 Web 개발 및 서버 프로그래밍을 주제로 블로그를 시작한지 어언 1년하고 3개월이 지난것 같습니다. 그런데 오늘!! 아직 목표치 달성은 아니지만 2/3에 달하는 성과를 내서 자랑하러 왔습니다ㅎㅎ 일일 방문자수 2000 돌파!! 일단 0에서 시작해서 남들에게 알려지기까지 많은 글들을 썻었는데요. 어디서든 소스를 찾아서 남들과 공유하는 것을 오프라인에서 조차 즐겼던 저로써는 블로그 포스팅으로도 다른 분들에게 공유할 수 있는 것을 또 그러한 행동을 굳이 하는 것을 나름 뿌듯하게 여기고 있었습니다. 실제로도 프로그래밍을 하면서 나름 내밀 수 있는 포트폴리오로 성장을 하기도 했구요. 이제는 그 이..
안녕하세요. 오늘은 커스텀 어노테이션을 활용하여 컨트롤러에서 메소드에 선언된 파라미터에서 세션 유저를 받아올 수 있도록 하는 HandlerMethodArgumentResolver 예제를 공유하고자 합니다. 우선 이전에 포스팅했었던 커스텀 어노테이션을 만드는 상세한 내용은 아래의 포스팅을 참조해주시기 바랍니다!! 2020/01/13 - [프로그래밍 언어/[Java] Study 내용 ] - [Java] Custom Annotation 커스텀 어노테이션 만들기(reflection 리플렉션) [Java] Custom Annotation 커스텀 어노테이션 만들기(reflection 리플렉션) 자바에서 커스텀 어노테이션을 만드는 방법은 다음과 같다. public @interface MyAnnotation { } 사..
안녕하세요. 오늘 맥OS 터미널 관련해서 공유드릴 것이 있어서 포스팅합니다. 저는 작업을 할때 스프링부트, 리액트 어플리케이션을 각각 IDE나 터미널 창에서 실행하여 작업하곤 하는데 IDE보다는 터미널에서 자주 실행하는 편입니다. 그런데 매번 오류를 수정하고 어플리케이션을 켤때보면 예컨데 3000번이었던 어플리케이션 포트가 3001번으로 켜지는겁니다. 3000번 포트를 미리 잡고있었던 것이죠. 문제점 분명히 Control + Z를 누르고 터미널에서 종료된 것을 확인을 했는데도 프로세스 검색 명령어( lsof -i: 포트번호 )를 통해서 검색해보면 살아있는 겁니다. 결론 알고보니 제가 명령어를 잘못 알고있었던 거였어요. control + z는 프로세스 정지명령어입니다. 프로세스가 종료된 상태로 있던 것이 ..
자바프로그래머들이 마주하는 가장 흔한 Exception은 NullpointerException 에러입니다. 이 Exception은 JVM에 의해 발생되는 RuntimeException 중 하나입니다. 여러분들도 아시다시피 NullpointerException은 애플리케이션은 Object가 필요한데 이 값이 null 값일 때 발생하는 에러입니다. Null 값은 자바프로그래머들이 대부분 쉽게 간과할 만한 케이스입니다. Null 값은 비즈니스 로직에서 NullpointerException이 발생하지 않도록 애플리케이션 내부에서 처리되어야 합니다. 이것은 불필요한 null 체크 코드를 만들어내게 됩니다. 이러한 뻔한 코드들을 처리하기 위해서, Java 8에서 Optional 타입이 도입되었습니다. Oracle에..