본문 바로가기

Develop

(317)
[Message Converter] 메시지 컨버터에 대해 알아보자 Message Converter는 XML이나 JSON을 이용한 AJAX 기능이나, 웹서비스 기능을 개발할때 주로 사용할수있다. HTTP 요청 메시지 본문과 HTTP 응답 메시지 본문을 통째로 메시지로 다루는 방식이다. 우선 Message Converter를 이해하기 위해서는, 사전 지식이 필요한 부분이있다. * JAXB - xml은 이제, 데이터를 표현하는 표준이다. Java object를 String 과 맞춰주는 Json파싱방법이 존재하는 것처럼 xml과 java Object를 파싱하는 기술 SAXparser와 Domparser들이 나왔다. 또한 해당 파서를 사용하면서 즉각 적으로 테스트가 가능하도록 하는 기술이 JAXB이며, Java Architecture for XML Bind 의 약자이다. * 언..
[Spring] Spring에서 사용하는 전체적인 어노테이션들 개념만 둥둥 떠있고, 정확하게 공부를 하지 않은, 어노테이션들에 대해서 공부를 하려고한다. 프로젝트를 진행하면서, 잠깐 쓰고 또 까먹고하는걸 확실히 익혀보자 @RequestMapping이나, @PostMapping같은거 말고, 잘 안쓰는것들에 대해서 한번 공부를 해보자 1. @RequestBody jsp나, view단에서, ajax로 통신한다고 가정해보자 객체 통신이라 무조건, Post방식을 사용해야한다. (Get으로도 할수있지만, 일일히 하나씩 set하는 개발자는 없을것이다.) Json.stringify는, json형태의 변수를 string 형으로 변환 시켜주는것이다. Json데이터를 string으로 Controller에다가 보내게되면, Controller에서는 이 String이 Json형식이라는 것을..
[Springboot] mustache 와, 기초 예제 스프링부트에서는 기존에 사용하던 뷰 템플릿인 jsp가 아닌, mustache 사용을 권하고있다. 관련되서, 이것저것 설정하는 것과, controller에서 주입 받은 모델을 사용하는 방법등을 포스팅한다. 우선 제공하는 템플릿이기 때문에,scr/resource/templates 하위에 둔다. 기본적으로 프로젝트 생성하면 생기는 경로이구, 해당 경로를 사용한다. 우선 머스테치와 유사하게 타임리프나 프리마커 등 템플릿들이 있는데, 머스테치의 장점은 아래와 같다. - 문법이 다른 템플릿보다 심플하다. - 로직 구현이 불가하여, view만의 역할을 보장합니다. - 인텔리제이 무료버전에서도 플러그인을 지원한다고하는데, 저는 프로젝트를 여러개 띄워놓고 개발하는게 편해서, 이클립스를 사용합니다. 컨트롤러에서 view로..
스프링 부트 vs 스프링 스프링 부트와 스프링의 차이 간단하게 추후 공부용으로 정리를 해보자 1. 불필요한 설정? 개발자가 설정할 부분이 줄어든다 Spring 은 xml 지옥과도 같은, web.xml 부터 servlet.xml applicationContext.xml 등과같은 필터, 리스터, 디펜던시 설정 팩토리설정 뷰 리졸버 설정 버전 설정을 다 일일히 해줘야한다. 하지만 spring boot는 버전관리도 스프링부트가 해주기 때문에 호환되는 라이브러리에 대한 종속성 버전 같은걸 개발자가 신경쓸 필요가 없다. starter 의존성 한줄로 많은걸 자동 설정해준다. 2. 내장형 톰캣을 사용한다. 스프링부트는 내장형 톰캣을 사용하고있어서 별도 톰캣설정을 하지않아도 바로 서버를 실행해서 코드를 짤수있다. 또한 환경설정 및 인프라적인 요..
연관관계 매핑 예제 공부 및 실습 연관관계에 대한 매핑 시 주의사항에 대한 공부를 했었고, 해당 공부를 진행하면서 많은 고민을 했었다. 실제로 구현 및 설게를 해보자 Member, Team, order, orderItem에 대한 설게를 해보자. 우선 사전 제약 사항에 대한 설정을 해보자 Member들은 각각의 정보를 가지고있고, 이 Member들에게는 Team의 정보가 포함이 된다. 어떤 Member는 team에 한군데 소속이 될수 있다. 또한 Member가 order들을 가질수있고, 이 order들에게는 orderItem들이 존재할수있다. 마지막으로 orderItem이 order와 item을 이어주는 것이라고생각을 하면 되고, Item은 이 Item에 대한 세부항목 정보이다. 1)Member 해당, memberId는 자동 id 값을 발..
JPA 연관관계 주인 및 설정 주의사항 일단 jpa 관련 예시 소스를 한번 보자 Team과 member에 대한 연관관계를 잘 생각해보자 이런 경우에, Team이 연관관계에 주인이라고 할수있다. 이렇게 member에서 가져다가, team에 대한 정보를 update 및 저장 등을 한다고 가정해보자 즉 모든 멤버는 각자 소속된 팀이 있거나, 없다. 이제 Member를 만들고, 이 멤버에 Team을 set해보자 db에는 어떻게 담기게될까?? Member의 Team을 set하였고, 해당 Member를 set, persist를 하게되면, 저렇게 db에 담기게된다. 그런데, 만약에 한 로직에서, flush가 되지않고, 1차 캐시에 값이 남아있는 상태로 find하게되면? add되지않은 상태에서, 값이 find 될 경우가 있다. (트랜잭션 관리) 따라서, 해..
JPA 관련 h2연동 기존의 aws RDS로 띄워서 개발을 했다가... 요금이 청구되었다 (피같은 내돈....) 그래서 부랴부랴 h2로 바꾸려고한다.... h2는 우선 혼자서 테스트용? 미니프로젝트용? 스터디용? 디비로 많이 쓰이며, 다른 디비보다 연결이쉽고 가볍다. 대신 용량이 적어서 프로토타입이나, 실제 서비스는 불가한 수준이니 참고하자 또한 자바기반의 RDBMS이다 무튼 h2 ㄲ 1. h2 사이트 접속 및 다운 http://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC ..
[JPA] 연관관계 매핑 RDB에서는 테이블 별로, 외래키를 매핑하며, 일대 다 혹은 다대다 의 형태를 가진다. 객체의 참조와, 외래키 매핑 관련되서 공부를 해보자 우선 간단한 예로, 팀과, 멤버에 대한 예제를 공부해보자 여러 사람이 한팀에 소속될 수 있다는 1:n관계라고 생각을 해보자 Member 에서는 Team에대한 관계와 조인 컬럼을 설정해준다. Team은 사실 별건없다. Lombok 을 사용해서 Getter,Setter도 직접 달아주었는데, 이건, 너무 불편해서 그냥 쓰기로했다 ㅋㅋ (매번 메소드 귀찮다) 이렇게 만 하면, 자동으로 PK,FK를 매핑해주는 테이블을 생성해준다. 예제 코드를 이렇게 작성해서 한번 테스트 해보자 뭐 잘들어간다. 추가로 위의소스에서 약간 수정한 내용은 PK가 id 자동생성 값일때는 String ..