본문 바로가기

전체 글56

Algorithm 1. 정의 - LIFO(Last In First Out : 마지막에 입력된 자료가 제일 먼저 내보내짐) 형태의 자료구조 2. 특징 - 자료입력(push), 출력(pop) - 자료크기(size), 현재위치(ptr) 3. 시간복잡도 자료구조 비교 Data Structures Average Case Worst Case SearchInsert DeleteSearch InsertDelete Array O(n) N/A N/A O(n) N/A N/A Sorted Array O(log n) O(n) O(n) O(log n) O(n) O(n) Linked List O(n) O(1) O(1) O(n) O(1) O(1) Doubly Linked List O(n) O(1) O(1) O(n) O(1) O(1) Stack O(n.. 2021. 2. 18.
1. Spring Security 스프링 시큐리티란? 스프링 시큐리티는 "인증"(A 사용자라고 서버에게 알림), "인가"(A 사용자를 확인하여 권한을 부여)와 CSRF, XSS, 세션변조, ClickJacking 등 다양한 웹 보안 관련 이슈에 대응하도록 도와준다. 1부 스프링 시큐리티: 폼 인증 1. 폼 인증 예제 살펴보기 ㅇ 홈페이지 - / - 인증된 사용자도 접근할 수 있으며 인증하지 않은 사용자도 접근 가능 - 인증된 사용자가 로그인한 경우 이름을 출력 ㅇ 정보 - /info - 이 페이지는 인증을 하지 않고도 접근 가능, 인증을 한 사용자도 접근 가능 ㅇ 대시보드 - /dashboard - 이 페이지는 반드시 로그인한 사용자만 접근 가능 - 인증하지 않은 사용자가 접근시 로그인 페이지로 이동 ㅇ 어드민 - /admin - 이 페.. 2020. 10. 7.
8. Spring WEB MVC 1. 스프링 MVC 동작 원리 ㅇ 스프링 MVC로 웹 애플리케이션 개발하기 M: 모델 V: 뷰 C: 컨트롤러 모델: 평범한 자바 객체 POJO (POJO와 Bean의 차이점 : sanghye.tistory.com/13) 뷰: HTML. JSP, 타임리프 , ... 컨트롤러: 스프링 @MVC 모델: 도메인 객체 또는 DTO로 화면에 전달할 또는 화면에서 전달 받은 데이터를 담고 있는 객체. 뷰: 데이터를 보여주는 역할. 다양한 형태로 보여줄 수 있다. HTML, JSON, XML, ... 컨트롤러: 사용자 입력을 받아 모델 객체의 데이터를 변경하거나, 모델 객체를 뷰에 전달하는 역할. 입력값 검증 - 입력 받은 데이터로 모델 객체 변경 - 변경된 모델 객체를 뷰에 전달 MVC 패턴의 장점 ● 동시 다발적(.. 2020. 9. 28.
7. Spring boot 1. Spring Boot란? 스프링 기반 어플리케이션을 빠르고 쉽게 만들 수 있으며 컨벤션 설정을 제공하여 스프링이 자동으로 설정되도록 한다. 더불어 써드파티 라이브러리를 설정을 제공하여 다양한 기능을 사용할 수 있다. (톰캣 라이브러리를 이용한 내장톰캣 이용 등) 2. Spring Boot 실행 환경 : JDK 8 버전 이상, Servlet 3.1 버전 이상의 환경에서 사용 가능하다. 3. Spring Boot 자동 설정 - @SpringBootConfiguration 애노테이션 내부에 @EnableAutoConfiguration 애노테이션 존재 - Bean은 두 단계로 나누어 읽힌다. - 1단계 : @ComponentScan (@Component, @Repository, @Service ... 애노.. 2020. 9. 24.
6. DispatcherServlet DispatcherServlet 초기화 ● 다음의 특별한 타입의 빈들을 찾거나, 기본 전략에 해당하는 빈들을 등록한다. ● HandlerMapping: 핸들러를 찾아주는 인터페이스 ● HandlerAdapter: 핸들러를 실행하는 인터페이스 ● HandlerExceptionResolver ● ViewResolver ● ... DispatcherServlet 동작 순서 1. 요청을 분석한다. (로케일, 테마, 멀티파트 등) 2. (핸들러 맵핑에게 위임하여) 요청을 처리할 핸들러를 찾는다. 3. (등록되어 있는 핸들러 어댑터 중에) 해당 핸들러를 실행할 수 있는 “핸들러 어댑터”를 찾는다. 4. 찾아낸 “핸들러 어댑터”를 사용해서 핸들러의 응답을 처리한다. ● 핸들러의 리턴값을 보고 어떻게 처리할지 판단한다.. 2020. 9. 1.
5. Servlet 1. 서블릿 (Servlet) ● 자바 엔터프라이즈 에디션은 웹 애플리케이션 개발용 스팩과 API 제공. ● 요청 당 쓰레드 (만들거나, 풀에서 가져다가 ) 사용 (프로세스가 떠서 쓰레드로 처리함) ● 그 중에 가장 중요한 클래스중 하나가 HttpServlet. 2. 서블릿 등장 이전에 사용하던 기술인 CGI (Common Gateway Interface) ● 요청 당 프로세스를 만들어 사용 3. 서블릿의 장점 (CGI에 비해) ● 빠르다. ● 플랫폼 독립적 ● 보안 ● 이식성 4. 서블릿 엔진 또는 서블릿 컨테이너 (톰캣, 제티, 언더토, ...) ● 세션 관리 ● 네트워크 서비스 ● MIME 기반 메시지 인코딩 디코딩 ● 서블릿 생명주기 관리 5. 서블릿 생명주기 ● 서블릿 컨테이너가 서블릿 인스턴스.. 2020. 9. 1.
3. DevSecOps 툴 (업데이트 예정) 스카우트(AWS), 아라치니, MobSF, ZAP API with Jenkins, Archerysec(어플리케이션 보안), anchore(Container 보안) 2020. 8. 12.
4. MacOS Security Management System 1. Backend (Springboot, MariaDB, Docker) github.com/h232ch/setsecurity h232ch/setsecurity Contribute to h232ch/setsecurity development by creating an account on GitHub. github.com 2. Mac Security Setting script github.com/h232ch/macsecurity h232ch/macsecurity Contribute to h232ch/macsecurity development by creating an account on GitHub. github.com 3. 동작방식 - MacOS Security Script Crontab 적용 - Mac.. 2020. 7. 21.
2. Vuls (CVE 취약점 관리 오픈소스) vuls.io/ Vuls · Agentless Vulnerability Scanner for Linux/FreeBSD Agentless Vulnerability Scanner for Linux/FreeBSD vuls.io 구현내용 추가 예정 2020. 6. 16.