본문 바로가기

728x90

전체 글

(108)
[스프링 인 액션 3장] Spring JDBC 사용 Chap03 데이터로 작업하기 📖 Chap03.1 에서 배우는 내용 🏁 [목표] Spring JDBC 개념과 사용법 익히기 🏁 [익혀야 되는 개념] 1) Spring 에서 JDBC를 이용하여 Database를 다루는 큰 그림 2) Plain JDBC와 Spring JDBC의 차이, Spring JDBC를 사용하는 이유? 3) Datasource의 Connection Pool 개념 4) JdbcTemplate을 이용하여 CRUD동작 구현하기 5) SimpleJdbcInsert 사용법 (+objectMapper 개념) 3.1.0 Spring에서 Database를 다루는 큰그림 client가 웹으로 request를 보내면 servlet으로 구현된 controller가 request를 받아, service 클래..
Spring Boot Test하기 [1] 테스트 TDD (Test-Driven Development) - 테스트 주도 개발에서 사용하지만, 코드의 유지보수 및 운영환경에서의 에러를 미리 방지하기 위해 단위별로 검증하는 테스트 프레임워크 단위테스트 - 작성한 코드가 기대하는 대로 동작을 하는지 검증하는 절차 JUnit - java기반의 단위 테스트를 위한 프레임워크 - Annotation 기반으로 테스트를 지원 Assert를 통하여 검증함. 서버를 구동하지 않고 컨트롤러만 단독으로 테스트하거나 컨트롤러와 연관된 비지니스 컴포넌트를 실행하지 않고 컨트롤러만 독립적으로 테스트 할 수 있는 환경이 필요. # 의존성 org.springframework.boot spring-boot-starter-test test # Controller : 뷰이름을 리턴..
AWS EC2 인스턴스가 안보이는경우 해결법 가끔 보안상 문제로 key 노출됐을때 인스턴스 안보이는 경우가 있음 그때 해결법. 안쓰는 EC2라면, 돈이 계속 나가므로 빠르게 해결해야됨. EC2 인스턴스가 안보임? -> 인스턴스 글로벌 보기 확인. 없던 인스턴스 확인 가능 이제 여기서 클릭후, 선택한 리소스 관리 ! (여기서부터는 검색하면 잘나옴) 인스턴스 상태 -> 중지후, 종료됨 클릭 끝!
[Kafka] 카프카의 내부 동작 원리와 구현 [4장에서 배울것] - 카프카의 리플리케이션 동작 - 리더와 팔로워의 역할 - 리더에포크와 복구 동작 - 리플리케이션 동작과 관련 있는 "컨트롤러, 컨트롤러의 동작" - 로그와 로그 컴팩션 1. 카프카 리플리케이션 메인 허브의 역할을 하는 카프카 클러스터가 정상적으로 동작하지 못하면 매우 심각한 문제가 생길 수 있다. 따라서 카프카는 초기 설계단계부터 안정적인 서비스를 운영할 수 있도록 "리플리케이션"이라는 동작을 함. 1) 리플리케이션 동작 개요 - 카프카는 브로커의 장애에도 불구하고 연속적으로 안정적인 서비스 제공함으로써 데이터 유실을 방지하고 유연성을 제공한다. - 토픽 생성 시 아래와 같이 "replicaion factor"라는 옵션을 설정해야 한다. - 생성 후 describe 명령어로 상세보기..
[Kafka] 카프카 기본 개념 구조 이해하기 1. 카프카 기초 다지기 1) 카프카를 구성하는 주요 요소 - 주키퍼(Zookeeper) : 아파치 프로젝트 애플리케이션으로 카프카의 메타데이터(metadata) 관리 및 브로커의 정상상태 점검(health check) 을 담당 합니다. - 카프카(Kafka) or 카프카 클러스터(Kafka cluster) : 아파치 프로젝트 애플리케이션으로 여러 대의 브로커를 구성한 클러스터를 의미 합니다. - 브로커(broker) : 카프카 애플리케이션이 설치된 서버 또는 노드를 의미 합니다. - 프로듀서(producer) : 카프카로 메시지를 보내는 역할을 하는 클라이언트로 총칭합니다. - 컨슈머(consumer) : 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭합니다. - 토픽(topic) : 카프카..
Hypermedia-Driven RESTful Web Services : Spring HATEOAS 구현방법 [2] Spring에서 Hateoas를 구현하는 방법에 대해서 알아보겠다. ## 환경 : Spring Boot + IntellJ + Maven 0) Dependency org.springframework.boot spring-boot-starter-hateoas 1) Link 를 만들기 위하여 WebMvcLinkBuilder 활용 Link link = new Link("http://localhost:8080/api/actors/1"); // 링크를 만들때 위와 같이 하드코딩을 하지 않도록 WebMvcLinkBuilder를 사용 // # WebMvclinkBuilder를 사용하여 링크를 만든다. // Link Object에는 rel와 href를 넣는다. // rel : 이름 / href : 실제 링크 // lin..
Hypermedia-Driven RESTful Web Services : HATEOAS란? [1] Hateoas의 개념에 대해서 알아보고, Spring에서 어떻게 구현하는지에 대해서 알아보겠다. REST API에는 등급이 존재한다. REST API의 등급 중 가장 높은 등급이 Hateoas라고 보면된다. 아래 표를 살펴보면, 일반적인 프로젝트에서는 구현하는 Rest API의 레벨은 Lvl2라고 보면된다. Lvl2는 Resources와 HTTP메서드를 사용한다. Lvl3, Hateoas는 Lvl2에 추가적인 Link를 가지고 있다. 이 Link를 통해 네비게이션이 가능하다. Request를 보면, Lvl2와 별 차이가 없어 보이지만, Response를 보면 JSON에 HAL라는 추가적인 링크가 있는 것을 알 수 있다. => 완벽한 RestApi를 사용하기 위해서는 Hateoas를 사용해야 한다. Hyp..
[Spring Security] Spring Boot에서 Spring Security 설정하기 (Database) # 구현 과정 1) Database를 사용하여 Role에 따라 Access Control 하도록 한다. - User JPA Entity, Role JPA Entity 가 필요하다. (N:M 매핑 관계로 함) - User와 Role entity와 관계된 Spring Data JPA repository를 만든다. 2) UserDetailsService와 UserDetails를 만든다. - UserDetailsService 인터페이스에서 정의된, loadUserByUsername()를 구현한다. - UserDetails 인터페이스에 User Entity, Role Entity를 넣어주는 것이 UserDetailsService의 loadUserByUsername 메서드이다. 3) Spring Security 설..

728x90