일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- SQL
- Pwnable.kr
- 정보보안기사 실기
- system hacking
- 웹해킹
- Payload
- OS
- 네트워크
- Shell code
- 워게임
- System
- Lord of BOF
- 해킹
- hacking
- webhacking.kr
- BOF
- Spring Framework
- 정보보안기사
- Operating System
- 정보처리기사 실기
- wargame
- pwnable
- Buffer Overflow
- stack overflow
- Spring
- Spring MVC
- LOB
- PWN
- 운영체제
- webhacking
- Today
- Total
목록프로그래밍/Spring (17)
DongDD's IT
[Spring] Spring Kafka - Reactor Kafka Kafka - 메시징 시스템(메시징 큐)이다.(e.g RabbitMQ) - Distributed Event Streaming Platform이다.(https://kafka.apache.org) - Pub/Sub 구조를 가지고 있다. -> Publisher는 특정 토픽에 key/value(data)값을 publish한다. -> Subscriber는 특정 토픽을 subscribe하여 데이터를 받는다. - Kafka는 기본적으로 클러스터 구성으로 동작한다. Local에서 Kafka 띄우기 - docker-compose-single-broker.yml 사용할 예정 - https://github.com/wurstmeister/kafka-docke..
[Spring] Spring Data Redis - Cache Redis(Remote Dictonary server) - Inmemory key-value 데이터베이스이며 NoSQL DBMS이다. - Message queue, Shared Memory, Remote dictionary 용도로 사용된다고 한다. - Key-value 저장소이고 Inmemory이기 때문에 좋은 성능을 제공하여 Cache 용도로 사용한다. -> Redis reference : http://redisgate.jp/redis/configuration/redis_conf_list.php (일본 사이트 인 것 같은데 한글로 번역되어 있다) - Redis server는 single-thread로 동작한다. Local에 Redis ser..
[Spring] Spring webflux ServerSentEvent(SSE) Server Sent Event(SSE) - 일반적인 통신에서는 Client의 하나의 request에 하나의 response가 전달되는 형태로 통신이 이루어진다 - SSE에서 사용하는 event-stream 방식에서는 client가 request를 전송하면 connection이 맺어진 후에 half-duplex로 서버가 지속적으로 데이터를 보내줄 수 있다 Spring SSE Spring MVC - Spring MVC에서는 SSEEmitter를 이용하여 event-stream 방식의 SSE를 구현할 수 있다 Spring Webflux - Spring Webflux는 reactive이기 때문에 Flux자체로 SSE를 구현할 수 ..
[Spring] Spring Boot Spring Boot Spring Boot - Spring framework의 프로젝트 중 하나- 특별한 설정 작업 없이 기본 설정만으로 다양한 기능을 구현 가능- Tomcat 내장 서버를 가지고 있어 따로 Tomcat 설정이 불필요 Project 구성(gradle) - Spring boot 생성 시, 다음과 같은 구조가 생성 1. BoottestApplication12345678@SpringBootApplicationpublic class BoottestApplication { public static void main(String[] args) { SpringApplication.run(BoottestApplication.class, args); }}Colored..
Spring MyBatis MyBatis - SQL과 자바 객체를 매핑하기 위해 개발된 DB 접근용 프레임워크- Hibernate, JPA : DB의 record와 객체를 매핑(ORM)- MyBatis : SQL과 객체를 매핑(SQLMapper) 장점 1. SQL 체계적 관리, 선언적 정의- 설정 파일, 어노테이션에 선언적 정의를 하기 때문에 비즈니스 로직에서 SQL을 감출 수 있음- Mapper interface가 SQL을 감추는 역할- Mapper interface를 호출하여 연결된 SQL 실행 2. 자바 객체와 SQL 입출력 값의 투명한 바인딩 3. 동적 SQL 조합 Component - Config : MyBatis 동작 설정을 지정하는 XML 파일- Mapper 인터페이스 : 매핑 파일, 어노테..
[Spring] Spring JPA 2 - Spring Data JPA, Spring Data JPA CRUD Spring Data JPA Spring Data - 데이터에 접근하는 코드를 줄이기 위한 스프링 프로젝트- DDD(Domain-Driven Design, 도메인 주도 설계)에서의 데이터 접근 계층 구성 요소인 Repository 권장- Repository 구현은 데이터와 관련된 아키텍쳐/제품에 따라 다름(각 종류별로 프로젝트가 만들어짐) Spring Data JPA - JPA를 이용해 데이터에 접근하기 위한 라이브러리- Respository 인터페이스를 작성하여 간단하게 Entity를 참조/갱신할 수 있음 JPA Config 12345678910111213141516171819202122232..
[Spring] Spring JPA 1 - JPA, JPA CRUD JPA(Java Persistence API) ORM/JPA - 자바 표준 ORM(Object Relational Mapping) 1. ORM(Object Relational Mapping)- RDB에 데이터를 읽고 쓰는 것과 같이 객체에 데이터를 읽고 쓰는 방식의 기술- 객체지향언어와 객체 지향이 아닌 RDB의 격차를 메워줌- 객체에 접근하기 위한 코드로 DB table에도 접근할 수 있게 해줌 2. JPA(Java Persistence API)- 자바 표준 ORM- Java EE의 구성 요소와 결합도가 낮음123456789@Servicepublic class JpaService { @PersistenceContext private E..
[Spring] Spring Security Spring Security - 어플리케이션에 보안 기능을 구현할 때 사용되는 프레임워크- servlet container에 배포하는 어플리케이션에 활용 기능 1. 인증/인가- 인증 : 사용자의 정당성 확인- 인가 : 사용자의 리소스 접근에 대한 제어 2. 세션 관리- Session을 이용한 공격에 대한 보호와 Session 라이프 사이클 제어 3. CSRF 방지 - CSRF(Cross-Site Request Forgery)로부터 보호 -> 이외에도 여러가지 기능이 많음 설정 1. Dependency 추가12345678910 org.springframework.security spring-security-web 5.1.5.RELEASE org.springfra..
[Spring] Spring Test Spring Test - Spring Framework에서 동작하는 클래스를 테스트하는 모듈 Unit Test - 테스트할 클래스의 구현 내용만 테스트- 사용하는 다른 클래스의 method 등은 Mock 또는 Stub으로 만들어 해당 구현 내용에 영향을 끼치지 않게함 Integration Test - 실제 운영 환경에서 사용될 클래스를 통합하여 테스트- 기능 검증을 위한 것이 아닌 spring framework에서 제대로 동작하는지 검증 Bean Test Dependency 추가 123456789101112131415 junit junit 4.12 org.mockito mockito-core 2.23.4 org.springframework spring-test 5.1..
[Spring] Spring MVC - Session, Async, 공통 처리, Locale HTTP Session - 여러 요청이 같은 데이터를 공유할 수 있어야함 → HTTP session을 이용해 해결할 수 있음- @SessionAttributes, Session Scope, HttpSession API 3가지 방법이 있음 SessionAttributes - @SessionAttributes 사용- HttpSession API를 직접 사용하지 않고 HTTP session에서 관리- 하나의 컨트롤러에서 여러 요청 간 데이터 공유에 효과적 1. Session에서 관리할 대상 객체 지정123456@Controller@RequestMapping("/test1")@SessionAttributes(types ..