일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Lord of BOF
- 정보보안기사 실기
- 워게임
- webhacking
- webhacking.kr
- Spring MVC
- SQL
- BOF
- OS
- pwnable
- hacking
- Shell code
- PWN
- Payload
- System
- 웹해킹
- Buffer Overflow
- Pwnable.kr
- wargame
- LOB
- stack overflow
- system hacking
- 해킹
- 네트워크
- 정보보안기사
- 정보처리기사 실기
- Operating System
- 운영체제
- Spring Framework
- Spring
- Today
- Total
목록프로그래밍 (24)
DongDD's IT
[Spring] Spring REST REST API - 클라이언트-서버간 데이터를 주고받기 위한 Architecture- 제공할 데이터를 resource로 추출하고 resource에 대한 CRUD를 제공하기 위해 REST API 사용- CRUD : Create, Read, Update, Delete ROA(Resource Oriented Architecture) - RESTful Web 구축을 위한 architecture 정의 1. 리소스 제공- web에서 클라이언트에게 제공할 데이터를 resource로 공개 2. URI를 통한 resource 식별- resource에 uri를 할당해 resource 접근 허용 3. HTTP 메소드를 통한 CRUD- GET : Read- POST : Create- PU..
[Spring] Spring Web Application Web Application 종류 1. 화면으로 응답하는 어플리케이션- jsp 등을 이용해 클라이언트에게 동적 웹 페이지 형태로 응답 2. 데이터로 응답하는 어플리케이션- JSON, xml을 사용해 데이터 형태로 클라이언트에 응답- RESTful API Controller 처리 1. 선언형 처리- method 시그니처를 참조해서 front controller가 하는 일- 요청 매핑, 요청 데이터 취득, 입력값 검증 2. 프로그래밍형 처리- controller 클래스의 method 안에 하는 일- 입력값 검증 확인, 비즈니스 로직 호출, 이동대상 확인/데이터 연계/지정 Controller 작성 1234@Controllerpublic class Tes..
[Spring] Spring MVC Spring MVC - 자바 기반 web application 개발할 때 사용하는 프레임워크- 아키텍쳐 : MVC 패턴 MVC 1. Model, View, Controller 세가지 역할의 컴포넌트로 구성1) Model- 데이터, 비즈니스 로직을 제공하는 컴포넌트2) View- model의 데이터를 참조하고 반환할 응답 데이터를 생성하는 컴포넌트3) Controller- 요청과 응답 처리를 제어하고 model과 view의 호출을 제어 특징 1. POJO 구현- 모델, 컨트롤러 등의 클래스는 POJO로 구현2. Annotation 방식을 정보 설정3. 유연한 method signature 정의- 처리에 필요한 인자들만 받아 처리 가능4. Servlet API 추상화- S..
[Spring] Datasource, Spring JDBC, Transaction Data Source - Application이 database에 접근하기 위한 추상화된 연결 방식 종류 1. Application module이 제공하는 Datasource- 서드파티가 제공하는 datasource나 스프링 프레임워크가 제공하는 datasource 사용- DB 정보를 Application이 관리 2. Application Server가 제공하는 Datasource- JNDI를 이용해 가져와 사용하는 방식- DB 정보를 Server가 관리(Application과 분리)JNDI(Java Naming and Directory Interface) : Java가 제공하는 directory, naming servic..
[Spring] Aspec of Programming(AOP), Resource Aspect Of Programming(AOP) - Logging 기능 등 비즈니스 로직과 별개인 공통 로직은 여러 코드 내에 동일하게 구현됨-> 수정이 필요할 경우, 모두 찾아 고쳐야함- 공통로직(Cross-Cutting Concern - 횡단 관심) - 보안, 로깅, 트랜잭션, 모니터링, 캐싱, 예외처리-> 이러한 로직을 분리하여 구현 하는 것을 AOP라고 함(공통 기능을 외부에서 삽입) AOP 개념 1. Aspect- AOP의 단위(공통 기능)- 로깅, 보안, 캐싱 등 2. Join point- Aspect가 실행될 시점(method 단위)- 특정 method를 뜻함 3. Advice- 특정 join point에서 실행..
[Spring] Dependency Injection(DI) Dependency Injection DI 배경 - 컴포넌트를 생성자에서 직접 생성하는 방식 —> 생성한 클래스를 교체하는 것이 어려움→ 클래스의 결합도가 높음→ 클래스의 결합도를 낮추기 위해 생성자의 인수로 컴포넌트를 넘기고 초기화하는 방식이 있음- 이러한 방식으로 클래스의 결합도를 낮추더라도 변경이 발생하는 경우 재작업을 피할 수 없음→ 외부에서 컴포넌트를 생성하고 내부에서 사용 가능하게 해주는 DI(Injection) 개념 나옴→ DI를 자동으로 처리하는 기반을 DI Container라고 부름 DI 장점 - 의존성 해결- 인스턴스의 scope 관리- AOP 기능 추가 IoC(Inversion of Control) - 인스턴스 관리를 DI ..
[Spring] Spring Framework Spring Framework Spring MVC - Web Application 개발을 위한 Framework- POJO(Plain Old Java Object) 형태로 구현- Annotation 기반 설정- Servlet API 추상화- Spring DI Container와 연계 1. Third-Party Library1) Jackson : JSON 처리2) Apache Tiles, Freemarker : 템플릿 엔진3) Rome : RSS, Feed 처리4) JasperReports : Repoter 출력5) Joda-Time : 날짜, 시간 정보 처리 2. Action 기반 framework(Spring MVC, Struts)- 요청 -> action..
Floyd-Warshall(플로이드 와샬) 알고리즘 Floyd-Warshall Algorithm - 그래프에서 모든 정점 사이의 최단 거리를 구하기 위한 알고리즘- 다익스트라 알고리즘을 모든 정점에서 수행한 것과 같은 알고리즘이지만 플로이드 와샬 알고리즘은 구현이 간단하다.- 음수 가중치에 대한 처리가 어려운 다익스트라 알고리즘에 비해 플로이드 와샬 알고리즘은 사이클이 없는 경우 음수 가중치 처리가 가능하다. Floyd-Warshall Complexity - 단순히 반복문 3개를 vertex만큼 돌기 때문에 O(V^3)의 시간 복잡도를 갖는다.- 특정 정점에서 특정 정점까지의 경로를 저장해나가며 구한 경로를 이용해 새로운 최단 경로를 찾는 DP방식으로 수행된다. 그러므로 2차원 배열이 필요하므로 O(V^..
BFS(Breadth-First-Search) Algorithm BFS Algorithm - 그래프나 트리같은 자료구조에서 사용하는 Search 알고리즘- DFS에서는 재귀 호출로 구현하는 경우가 많지만, BFS에서는 보통 queue 자료구조를 사용해 구현한다.- 갈 수 있는 경로를 쭉 따라가는 DFS와 달리, 현재 Vertex에서 갈 수 있는 모든 정점을 방문한 후 방문한 정점을 기준으로 다시 갈 수 있는 모든 정점을 방문하는 식으로 진행된다. BFS Complexity - 인접 리스트를 이용해 그래프를 구현하는 경우와 인접 행렬을 이용해 구현하는 경우에 따라 시간복잡도가 다름 1) 인접 리스트- 한 정점에서 방문할 수 있는 정점을 간선 기준으로 탐색할 수 있기 때문에 O(V+E)의 시간 복잡도를 가진..
DFS(Depth-First-Search) Algorithm DFS Algorithm- 그래프나 트리같은 자료구조에서 탐색을 할 때 사용하는 알고리즘 중 하나- DFS는 구현 방식이 여러가지 있고 각각으 시간 복잡도는 다름- 하나의 정점부터 가장 깊이가 깊은 곳까지 탐색하며 방문하지 않은 모든 정점들을 탐색함 DFS Complexity- 인접 리스트를 사용해 그래프를 구현하는 경우와 인접 행렬을 이용해 구현하는 경우 시간복잡도가 다름 1) 인접 리스트- 한 정점에서 방문할 수 있는 정점을 간선 기준으로 탐색할 수 있기 때문에 O(V+E)의 시간 복잡도를 갖는다. 2) 인접 행렬- 방문할 정점을 찾을 때 연결된 모든 정점을 순회하며 이어져 있는지 체크를 해야 되기 때문에 O(V^2)의 시간 복잡도를 갖는다..