WEB
-
[Spring] Level3 REST API 구현을 위한 HATEOAS 적용WEB/Spring 2020. 7. 5. 01:27
HATEOAS(Hypermedia As the Engine Of Application State) 현재 사용하고 있는 Restful에 리소스와 연관된(호출 가능한) 자원 상태 정보를 제공 Level 0 : The Swamp of POX (원격 프로시저 호출) 일반 XML 데이터를 SOAP이나 XML-RPC 등으로 전송한다. POST 메소드만 사용하며, 서비스간에 단일 POST 메소드로 XML 데이터를 교환한다. 초창기 SOA 애플리케이션 제작 시 흔히 사용된 방식이다. Level 1 : Resources (Rest 리소스) 함수에 파라미터를 넘기는 대신 REST URI를 이용한다. 레벨 0처럼 POST 메소드 하나밖에 사용하지 않지만, POST 메소드로 서비스간 통신을 하면서 복잡한 기능을 여러 리소스로..
-
[Spring Boot] java.sql.SQLNonTransientConnectionException: Could not create connection to database server.WEB/Spring 2020. 6. 6. 23:44
스프링부트 + JPA, 로컬에 깔려있는 MySQL을 연동하는 과정에서 다양한 오류를 만나며 삽질을 해가며 드디어 오류들을 해결했는데, 그 결과들을 기록해보겠습니다. java.sql.SQLNonTransientConnectionException:com.mysql.cj.exceptions.CJException 설정파일에 등록한 username과 password가 로컬 MySQL과 다르면 위와 같은 오류가 나오므로 아래와 같이 스프링부트 프로젝트의 resource 아래의 application.properties 혹은 application.yml 파일을 꼭 확인해보시길 바랍니다. com.mysql.cj.exceptions.InvalidConnectionAttributeException:The server tim..
-
[GIT] Git Source Tree 입문WEB/Git 2020. 5. 10. 23:01
git 이란? 형상 관리 시스템(Version Control System)의 한 종류, 주로 개발자들이 프로그램과 관련된 파일들을 저장하는 데 사용합니다. 게임의 세이브 포인트와 유사하며, 언제든지 저장 시점으로 되돌아 갈 수 있습니다. 커밋(commit) 게임의 세이브에 해당하는 행동을 git에서는 커밋이라고 합니다. 사용자는 언제든지 커밋한 시점으로 되돌아 갈 수 있습니다. 커밋을 하려면 저장을 원하는 파일을 묶어서 커밋 명령을 수행하면 됩니다. 스테이지에 올리기(add) 앞에서 커밋하기 전에 저장을 원하는 파일들을 묶는 일을 해야 하는데 이 작업을 '스테이지에 파일을 올린다.' 라고 합니다. 혹은 줄여서 'add' 라고 표현합니다. github에 업로드(push) 커밋을 하면 현재 작업 내용의 세이..
-
[Spring Boot] h2 Database 인덱스 auto_increment 초기화WEB/Spring 2020. 5. 5. 18:10
스프링 부트 공부를 하면서 h2 DB를 이용해 실습하던 도중 다음과 같은 문제를 만났습니다. 임의의 DB의 테이블에 인덱스 값이 1,2,3,4 인 4개의 레코드가 있다고 가정했을때, 4번 인덱스의 레코드를 삭제하면 그 다음에 레코드를 생성시 4번이 아닌 5번으로 생성되는 경우가 발생합니다. (1,2,3,5 이런식으로...) 이를 해결하는 방법을 스택오버플로우에서 찾았는데 한국 블로그에는 이를 정리해둔 곳이 없는것 같아서 기록하려합니다. https://stackoverflow.com/questions/10065386/resetting-autoincrement-in-h2 Resetting autoincrement in h2 I'm testing a controller that returns a json re..
-
[Spring] 스프링 어노테이션 정리WEB/Spring 2020. 4. 25. 01:59
Spring 관련 @Component 해당 클래스가 스프링에서 객체로 만들어서 관리하는 대상임을 명시하는 어노테이션 @ComponentScan - @Component가 있는 클래스를 스프링이 읽어주도록 하는 어노테이션 @Controller, @Service, @Repository - @Componet의 구체화, 컨테이너에 bean으로 등록되며 해당 클래스가 Controller/Service/Repository로 사용됨을 명시하는 어노테이션 @Autowired - 스프링 내부에서 자신이 특정한 객체에 의존적이므로 자신에게 해당 타입의 빈을 주입해주라는 표시 - 스프링은 @Autowired 어노테이션을 보고 스프링 내부에 관리되는 객체들 중에서 적당한 것이 있는지를 확인하고, 자동으로 주입 @RequestB..
-
[Spring] 어노테이션(Annotation)을 이용한 스프링 설정WEB/Spring 2020. 4. 6. 20:32
어노테이션을 이용하여 스프링 XML 파일을 Java 파일로 변경할 수 있습니다. 어노테이션을 이용해 XML 파일을 Java 파일로 변경한 후 메인 클래스에서 GenericXmlApplicationContext 대신 AnnotationConfigApplicationContext를 이용하면 기존의 XML 파일을 이용했던 것 처럼 정상적으로 실행되는 것을 확인할 수 있습니다. 출처 : 인프런, 자바 스프링 프레임워크 - 신입 프로그래머를 위한 강좌
-
[Spring] 생명주기(Life Cycle)WEB/Spring 2020. 4. 5. 17:47
1. 스프링 컨테이너(Contatiner) 생명주기 2. 스프링 빈(Bean) 생명주기 스프링 컨테이너가 생성됨과 동시에 빈(Bean) 객체도 생성되므로 빈(Bean) 객체의 생명주기는 스프링 컨테이너의 생명주기와 같다고 할 수 있다. 빈 객체가 생성이되고 소멸되는 시점에 특정한 작업을 할 수 있는데 그 특정한 작업을 할 수 있는 방법은 인터페이스(Interface)를 이용하는 방법과 init-method와 destroy-method 속성을 이용하는 방법이 있습니다. 2-①. 인터페이스 2-②. init-method, destroy-method 출처 : 인프런, 자바 스프링 프레임워크 - 신입 프로그래머를 위한 강좌