본문 바로가기

728x90

Backend/Spring & SpringBoot

(27)
[Spring Security] Spring Boot에서 Spring Security 설정하기 (in-memory) # Spring Boot에서 Security를 어떻게 쓰는지 알아보겠다. 0. 프로젝트 생성 1. Maven Dependency 추가 : Default Auto Configuration에 대해서 살펴보기. (New Project에서 생성 Security > Spring Security 추가) org.springframework.boot spring-boot-starter-security => spring-boot-starter-security 만 의존성 추가해도 많은 일이 생긴다. (Auto Configuration이 일어남.) 1) Authentication Manager bean이 in-memory에 저장되어 , default User가 생긴다. (login, logout page가 제공됨) user..
[WEB] URI 규칙 10가지 1. 슬래시 구분자는 계층 관계를 나타내는데 사용한다. 2. URI 마지막 문자로 ( / ) 는 포함하지 않는다. 3. 하이픈( - )은 가독성을 높이기 위해 사용한다. 4. 밑줄( _ )은 사용하지 않는다. 5. 대문자보다는 소문자를 사용한다. 6. 파일 확장자는 URI에 포함하지 않는다. 7. 프로그래밍 언어에 의존적인 확장자를 사용하지 않는다. 8. 자원에 대한 행위는 동사가 아닌 HTTP Method로 표현한다. 9. 경로 부분 중에서 변하는 부분은 유일한 값으로 대체한다. 10. API에 있어서 서브도메인은 일관성 있게 사용해야 한다.
[JPA] JPA / Hibernate Cascade Types 요약 JPA Cascade Type ALL PERSIST MERGE REMOVE REFRESH DETACH CascadeType.ALL 모든 Cascade 적용 CascadeType.PERSIST 엔티티를 영속화할 때, 연관된 엔티티도 함께 유지 CascadeType.MERGE 엔티티 상태를 병합 할 때, 이 필드에 보유 된 엔티티도 병합됨. CascadeType.REFRESH 엔티티를 새로 고칠 때, 이 필드에 보유 된 엔티티도 새로 고침. CascadeType.REMOVE 엔티티를 삭제할 때, 이 필드에 보유 된 엔티티도 삭제됨 CascadeType.DETACH 부모 엔티티가 detach()를 수행하게 되면, 연관된 엔티티도 detach() 상태가 되어 변경사항이 반영되지 않는다.
[Spring Boot] Spring Boot 의 특징 Spring Boot 관련 개념 1. Spring Boot 를 왜사용하는지? 1) 생산성 2) Time to Market - 적시에 출시하는게 중요하기 때문. 2. Spring Boot 의 장점? 1) 수동적인 설정의 양을 최소화 auto-configuration - 관련된 클래스가 있음. props files & JAR classpath을 기반으로해서 자동으로 설정함. xml 파일을 만들어 줄 필요가 없다. 2) Dependency conflicts를 해결 해준다. 라이브러리간의 버전 충돌이 발생 할 수 있는데 관련된걸 세팅 3) embedded server 제공 애플리케이션 안에 내장 서버를 가지고 있어서 별도 설치 없이 빠르게 시작 할 수 있다. 3. Spring Boot 와 Spring MVC, ..
[Spring] 스프링에서의 Restful web Service Restful web service를 스프링에서 어떻게 구현할 수 있을까? 기존의 Spring 방식은 밑의 방식과 같다. request를 받으면 Dispatcher Servlet이 받고, Handler Mapping을 통해 어떤 컨트롤러로 보낼지 결정해서 Service, DAO를 거쳐 View를 만들어 다시 Response로 Client로 보내주는 방식이였다. Controller는 단순히 object(객체)를 return한다. 이 object data(객체데이터)가 json/xml 형태로 HTTP response 메시지에 담겨서 전달이 된다. @RestController, @RequestBody, ResponseEntity class, @PathVariable을 통해 REST API를 구현하게 된다. 1..
Restful Web Service 어떻게 하면 웹서비스를 편안하게 개발할까? Rest에 대해 학습 이유? 백엔드 개발자의 시작은 바로 프론트엔드와 연동하기 위한 API 개발이다. 그래서 백엔드 개발자가 되기로 마음을 먹었다면 ‘원하는 기능의 API를 만들어야지’ 라고 생각 하면된다. 그중에서도 REST API를 시작하면 좋은 이유는 오랫동안 API개발의 표준 처럼 사용 되어 왔고 서버개발의 전반적인 흐름을 이해 하는데 도움이 되기 때문이다. 최근에는 GraphQL을 도입하는 회사들도 많아지고 개발 생산성도 좋은 편이지만 아직 까지는 좋은 백엔드 개발자가 되기 위해서는 REST API를 먼저 익히고 학습 하는게 좋다고 생각한다. RestFul Web Service란 무엇인가?? => URI + HTTP standard method를 통해 ..
[Spring Boot] Spring Data JPA의 사용법과 사용이유, 예시 Spring Data JPA 1. Creating DAO 문제 다른 entity 를 만들때 유사한 코드의 반복. DAO 패턴이 같다는 점. 코드의 반복 entity type , primary key만 바꿔주면 다른 entity 도 다를 것이 없다. 2. Spring Data JPA 장점 틀에 박혀있는 DAO code를 최소화, DAO를 실제로 만들어줄 필요가 없다 제공되는 인터페이스 Spring DATA JPA 는 repository interfaces 를 제공한다. 1) CrudRepository 2) PagingAndSortingRepository 3) JpaRepository 4. Query Method id를 기반으로 해서 조회하기 보다는, 검색을 통해서 조회할 경우가 있다. 그 부분에 대해서는 ..
[Spring Boot] Spring에서의 Hibernate 사용법 1. Spring Framework에서 Hibernate 사용 1) Maven Dependency 추가 2) Spring Bean 설정 3) Entity Bean (with annotation) 4) DAO Layer ( Spring JDBC => Hibernate) 1) Maven Dependency 추가 org.springframework spring-orm ${org.springframework-version} org.hibernate hibernate-core 5.4.28.Final 2) hibernate configuartion (dao-context.xml) - hiberante.cfg.xml 파일을 실제로 생성할 필요가 없고, dao-context.xml에 정보를 넣어주면된다. - Confi..

728x90