본문 바로가기

디버깅/Spring mvc (Maven, Mybatis)

(16)
[Spring mvc] Spring-Loaded를 이용해 핫플러그 개발환경 구축(톰캣 재시작 없이 개발) 서론잠시 자바와 스프링을 외도하는 사이에 JS로 웹을 만들며 놀았는데.. 이때 가장 놀랍고도 유용 했던것이 Auto Reload였다.별거 아닌듯 한데 단순히 Reload 되는 걸 넘어서 상당한 생산성 차이를 주었기에 다시 스프링을 하며 이것이 꼭 있었으면 했었다.사실 이클립스를 쓰면서 IDE플러그인에 이 기능이 있었지만 유료 였다.. 그러다가.. 해외에선 대부분 Spring-boot을 사용하면서.. 이와 관련된 내용이 분명히 있을거라.. 생각했는데 역시나 있었다. 안타깝게도 아직 국내에는 Spring 포스팅이 훨신 많은데.. (나또한 아직 쓰고 있지만) 익숙함 외에는 Spring mvc + Maven 은 더이상 Spring-boot과 Gradle 대비 장점이 없다고 단언해서 말 할 정도가 된 것 같다.S..
[Spring-boot] CRUD 예제 이해하기 [Spring boot + Gradle + JPA + Hibernate] h2 db d연동 예제 https://dodo4513.github.io/2018/02/11/spring_h2/http://millky.com/@origoni/post/1155http://jojoldu.tistory.com/234http://projectjt.tistory.com/4http://millky.com/@origoni/post/1155
[오픈소스] 스프링 3 기반 커뮤니티 사이트 오픈소스 소개 지금보다 더 초보시절.. (지금도 초보이지만)에 혼자 커뮤니티 비슷하게 만든 사이트가 있습니다.이걸 만들면서 나름대로 공부가 많이 되었고.. 잊었던 코딩의 감을 다시 익히는데 도움이 되었습니다. 이걸 만들게된 계기와 이야기는 하단에...생각보다 꽤 오래전부터 시작했었는데.. 몇달을 쉬고.. 코딩에 손놓고 폼이 많이 떨어져서.. 한참을 멈췄었던 프로젝트였다.조금씩 코딩을 다시하고 자주 다니는 몇몇 커뮤니티에서 영감을 받아 만들다보니 거의 클론코딩 비슷하게 된 것 같다.대부분 개발자들이 그렇듯.. 미적감각이 전무하고.. CSS를 대충 색깔 칠하는 법만 알고 있어서.. 백엔드 프로그래밍보다는 프론트엔드.. 정말 기초적인 수준에서 손에 익숙해지는데 까지 올리는 시간이 더 오래 걸린듯 하다 ㅡ,ㅡ;; 아직 구현하..
[Mybatis] insert, update 후 row의 column 값 return받기 그동안-_- 이걸 모르고 어떻게 개발했나 부끄럽지만.. 이제서야 알게 되었다. row를 insert하거나 update하면 그 row의 index값을 컨트롤러에서 사용해야 할때가 있다. 하지만 보통의 index는 auto increment 하거나, Oracle에선 sequence를 이용해서 값을 부여하기 때문에 insert되기 전까지 row의 index를 판별할 수가 없다. sqlsession에서 insert()에 리턴이 있고.. 메소드를 자세히 읽어보면 selectKey라는걸 리턴받을 수가 있는데 (이걸 쓰면서 처음 읽어본 내 자신에게 반성을..) 이 selectKey라는건 컬럼을 직접 지정해주면 되고.. 지정하면 리턴받을 수 있다. 대략 그것에 대한 설명이 되겠다. 1. insert 태그에 proper..
[Spring] Mybatis SQL Log 출력 모듈 추가하기 보통 ORM.. 자바에서는 JPA를 이용한 관계형 데이터 베이스가 아니라면.. 스프링 웹 프로젝트는 쿼리를 기반으로 한 OOP가 주력 패러다임 일 것이다. 그말은 작성해야 하고 디버깅 해야 할 SQL의 양이 상당하고 피할수가 없다는 것인데. 스프링 프로젝트에 기본 세팅에는 SQL Logging이 켜져 있지 않다. 이 글에선 Console 창에 Mybatis 에서 어떤 쿼리가 실행되는지. 쿼리에 어떤 매개변수를 받고.. 실행된 쿼리에서 어떤 데이터를 반환받는지 등을 콘솔에서 바로바로 볼 수 있게 세팅 할 것이다. (statement, preparedstatement) 물론 LIST나 MAP의 형태로 받은 데이터를 logger로 출력해도 비슷하게 볼 수 있으나, 그 데이터가 조금만 늘어도 한줄로 길게 출력 ..
스프링 프레임 워크(Spring Framework) - 5. 프로젝트 살펴보기, 뼈대 만들기 등등 힘겨운 개발환경 세팅이 끝났습니다. (??) 처음엔 잘 모르겠는데.. 블로그 가이드 같은것을 보면서 하다보면.. 그냥 저절로 외워지게 되니.. 절대로 이 과정을 외워야겠다던가.. 이걸 모르면 개발을 쥐뿔도 못하는 사람이 되는건가.. 하는 자괴감은 들지 마시길 바랍니다. 모든건 시간이 해결 해줍니다만... (보통은 그렇게 놀면서 시간을 보낸다는 것이..) 아무튼 이어가보겠습니다. 이전 글에서 Spring 프로젝트 생성후 Hello World의 한글깨짐을 해결하는 과정을 진행하고자 했습니다.해결 방법은 두가지가 있는데요. 1. jsp가 작성된 view에 인코딩을 명시 정해주는 방법과2. Spring 프로젝트 자체에 강제로 인코딩을 정해서 만약 개발자나 view를 작성할때 인코딩을 정해주지 않아도.. 알아서 ..
스프링 프레임 워크(Spring Framework) - 4. 프로젝트 생성 및 설명 Hello World 이클립스 및 STS (이하 IDE)를 실행하면 프로젝트 설정 창이 나타납니다. 적당히 C드라이브에 project나 source를 만들고 workspace폴더를 만들어서 지정해주고 OK를 누릅니다. 예시) C:\source\lianteWorkspace제 경우 별명과 Workspace를 넣어서 폴더를 하나 만들어 주었습니다. 대략 6등분된 6개의 레이아웃이 나타날텐데. 간단히 보이는대로 역할을 적어보자면 Package Explorer - Java의 패키지가 아니라 워크스페이스의 패키지들이 보입니다. 쉽게 말하면 프로젝트들의 패키지 익스플로러 정도로 보입니다.메인화면 - 메인이 되는 코드 작성 페이지입니다 (??)Outline - 말그대로 (??) 아웃라인입니다. 각 소스들의 태그라던가.. 메소드 같은 것을 ..
[Spring] 빈 생성 에러 디버그 Error creating bean with name 'XXX' 스프링은 자바에서 MVC 패턴을 이용해 개발을 할 수 있게 도와준다. 또한 자바의 철학에 맞게 확실한 데이터 형과 문법, 그리고 Bean이라는 개념을 통해 객체 지향 프로그래밍을 사용하고.. 이를 통해 협업을 할 수 있도록 설계를 할 수 있게 해준다. 제목에 적힌 빈 생성 에러의 경우 크게 두세가지 의 이유로 에러가 발생한다.또한 어떤 것을 빠트렸냐에 따라서 에러가 나는 빈의 종류가 다르다. 에러 메시지에 따라 해결 방법을 사례별로 정리해 두었다. 디버깅을 위해서던 검색하다가 개념 숙지용으로 보았던 간에.. 스프링의 Flow에 관한 이야기 이므로.. 쭉 읽어보고 이해가 안간다던지 검증하여 숙지하길 바란다. (절대로 암기하지말고 이해해야 한다.) 이 Flow을 모른다면 스프링을 안다고 할수 없다. Erro..