SpringFramework(7)
-
Restful API
1. REST API의 탄생REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다. 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 합니다.2. REST 구성쉽게 말해 REST API는 다음의 구성으로 이루어져있습니다. 자세한 내용은 밑에서 설명하도록 하겠습니다.자원(RESOURCE) - URI행위(Verb) - HTTP METHOD표현(Representations)3. REST 의 특징1) Uniform (유니폼 인터페..
2019.01.04 -
JPA에서 쿼리 메소드 안에 지원되는 키워드
쿼리 메소드는 스프링 데이터 JPA의 핵심적인 기능중 하나로 메소드 이름으로 쿼리를 생성할 수 있다는 장점이 있다. 메소드 이름으로 쿼리를 생성을 위해 인터페이스에서 사용할 사용자 쿼리 메소드를 정의해 준다. EmailAddress와 LastName의 칼럼을 where 절의 조건으로 질의하는 사용자 쿼리 메소드는 인터페이스에 다음과 같이 선언해 줄 수 있다.public interface UserRepository extends Repository { List findByEmailAddressAndLastname(String emailAddress, String lastname); }위와 같이 인터페이스에서 먼저 사용자 쿼리 메서드를 정의해준 다음 인터페이스를 구현하는 서비스에서 구체적인 비즈니스 로직..
2018.08.01 -
hibernate.hbm2ddl.auto
hibernate.hbm2ddl.auto 위험 헷지JPA를 사용하면서 가장 편한 기능 중의 하나가 hibernate.hbm2ddl.auto 설정을 통해 Java 애플리케이션 단에서 엔티티 객체의 변경 사항이 DB 단에서의 테이블 스키마에 자동으로 반영된다는 점이다.그런데 이는 '개발'의 편리성에 해당할 뿐이고, '운영' 중에는 hibernate.hbm2ddl.auto 설정 때문에 SW 시스템이나 서비스 분야에서 겪을 수 있는 가장 큰 규모의 장애를 마주하게 될 수도 있다. 바로 데이터가 몽창 사라지는 것이다.. 이보다 더 위험한 설정이 있을 수 있을까.. ㄷㄷㄷ문제 상황결론부터 말하면 여러가지 상황이 짬뽕되어 hibernate.hbm2ddl.auto의 값이 의도하지 않게 create로 적용되어서 Drop..
2018.07.07 -
MyBatis+Oracle
1. pom.xml org.mybatis mybatis 3.4.6 org.mybatis mybatis-spring 1.3.2 javax javaee-api 8.0 com.oracleojdbc611.2.0.3 2. DTO class ( com.app.myproject > model > Field.java )public class Field implements Serializable{private static final long serialVersionUID = 1L;private String id;private String password;public String getId() {return id;}public void setId(String id) {this.id = id;}public String ge..
2018.07.02 -
Mybatis 사용시 parameterType="String" 오류
* 단일파라미터인 경우 String 사용시 DELETE FROM PROJECT WHERE ID = #{value} 1. parameterType="xxDTO"로 했을 때 #{id}로 하면 잘 되지만 parameterType="String"으로 했을 때 #{id}로 하면 There is no getter for property named 'id' in 'class.java.lang.String' exception 에러 남 2. parameterType="String"으로 했을 때 #{value}로 해야 잘 됨 * 단일, 다중 파라미터인 경우 map 사용시 Map map = new HashMap(); map.put("id", "111"); DELETE FROM PROJECT WHERE ID = #{id} h..
2018.06.08 -
STS 단축키
단축키 활용을 통한 퍼포먼스의 상승블록단축키의미응용Shift + ←, Shift + →좌우로 한 캐릭터 단위 블록Shift + ↑, Shift + ↓상하로 한 줄 단위 블록세로 편집 모드에서 사용시 줄이 아닌 캐릭터로 블록Ctrl + Shift + ←, Ctrl + Shift + →좌우로 단어(캐릭터의 대소구별) 단위 블록Shift + Alt + ↑ ( ←, → )연속된 문자열 블록변수명이나 메소드명 블록(↑추가 입력시 중괄호 전체를 블록 가능하며 ←, → 키를 입력시 메소드 단위로 추가 블록 가능, ↓입력시 시간 역순으로 블록에서 제외)Shift + Home, Shift + End커서 위치 부터 줄의 처음/끝까지 블록줄 전체를 블록하는 경우 커서를 줄의 처음이나 끝으로 이동(Home/End키) 시킨 후..
2018.06.08