
실전 프로젝트 구성 프로젝트 명 core-spring-security 프로젝트 기본 구성 의존성 설정, 환경설정, UI 화면 구성, 기본 CRUD 기능 스프링 시큐리티 보안 기능을 점진적으로 구현 및 완성 Springboot, Spring MVC, Spring Data JPA 기초 지식 학습 권장 스프링 시큐리티 기술에 집중 프로그램 설치 DB-Postgresql Server PostgreSQL 설치 PostgreSQL은 오픈 소스 객체-관계형 데이터베이스 시스템(ORDBMS)으로, Enterprise급 DBMS의 기능과 차세대 DBMS에서나 볼 수 있을 법한 기능들을 제공한다.약 20여년의 오랜 역사를 갖는 PostgreSQL은 다른 관계형 데이터베이스 시스템과 달리 연산자, 복합 자료형, 집계 함수,..

위임 필터 및 필터 빈 초기화 - DelegatingProxyChain, FilterChainProxy DelegatingFilterProxy servletFilter는 Servlet 스펙이기 때문에 컨테이너가 달라 스프링에서 정의된 빈을 주입받아 사용할 수 없다. 스프링 시큐리티에서는 보안정책 요청 처리를 위해 여러 위치에서 Bean 주입이 반드시 필요하다. DelegatingFilterProxy를 통해 서블릿 컨테이너에서 필터로서 요청을 취득하고, 스프링 컨테이너에 존재하는 특정 빈(springSecurityFilterchain)을 찾아 요청을 위임한다. 위임만 하는 역할일 뿐 아무런 보안처리를 하지 않는다. 요청을 전달하는 DispatcherServlet같은 역할인가? https://logical-..

스프링 시큐리티란? 스프링 시큐리티는 스프링 기반 애플리케이션의 인증과 권한, 인가 등을 담당하는 스프링의 하위 프레임 워크이다. 접근 주체(Principal)는 보호된 리소스에 접근하는 유저 인증(Authenticate)은 보호된 리소스에 접근한 유저가 누구인지, 애플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정인 로그인을 의미한다. 인가(Authorize)는 해당 리소스에 접근 가능한 권한을 가지고 있는지 확인하는 과정 (After Authentication, 인증 이후) 인증된 사용자가 어떤 것을 할 수 있는지를 의미한다. 권한은 인증된 사용자가 애플리케이션의 동작을 수행할 수 있도록 제한된 최소한의 권한을 가졌는지 확인한다. 주로 서블릿 필터(filter)와 이들로 구성된 필터체인으로 구..

상수 상수(constant)는 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다. 상수를 선언하는 방법은 변수와 동일하며, 단지 변수의 타입 앞에 키워드 'final'을 붙여주기만 하면 된다. final int MAX_SPEED = 10; 상수(constant) 선언하기 상수는 변하지 않는 수 원주율 3.14, 1년 12개월 등 final 예약어를 사용하여 선언 상수를 사용하면 변하지 않는 값을 반복하여 사용할 때 의미있는 문자로 인식하기 쉽고 혹, 변하더라도 선언한 부분만 변경하면 되므로 여러 부분을 수정할 필요가 없다. 일단 상수에 값이 저장된 후에는 상수의 값을 변경하는 것이 허용되지 않는다. final int MAX_VALUE; /..

변수와 메모리 변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당된다. 변수는 할당된 메모리를 가리키는 이름 기본 자료형(Primitive Data Type)의 종류 정수형 문자형 실수형 논리형 1바이트 byte - - boolean 2바이트 short char - - 4바이트 int - float - 8바이트 long - double - 자료형의 종류와 크기 자료형 저장값 범위 bit byte boolean true, false 8 1 char '\U0000' ~ '\Uffff' (0 ~ 216-1, 0 ~ 65535) 16 2 byte -128 ~ 127 (-27 ~ 27-1) 정수 기본형 8 1 short -32,768 ~ 32,767 (-215 ~ 215-1) 16 2 int -2,147,..

변수는 변하는 수라는 뜻으로 프로그래밍 언어에서 하나의 값을 저장할 수 있는 공간이다. Primitive Type(기본형)은 들어간 데이터 값 그대로 변수에 담기고 References Type(참조형)은 인스턴스된 객체의 메모리 주소값을 변수에 담는다. https://velog.io/@macchiato3671/%EB%B3%80%EC%88%98 변수의 사용 프로그램에서는 항상 변하는 값을 나타낼 필요가 있음 (ex. 학생의 성적, 합계, 게임 레벨 등..) 표현하려는 수에 맞는 데이터 타입(자료형)을 이용하여 변수를 선언 표현하려는 자료가 숫자, 문자, 문자열등 다양할 수 있으므로 그에 맞는 자료형을 사용 변수의 이름 변수 이름은 영문자(대문자, 소문자)나 숫자를 사용할 수 도 있고, 특수문자 중에는 $와..
https://myeonguni.tistory.com/1596
프로그래밍 이란? 프로그래밍 : 프로그래밍 언어로 컴퓨터가 일을 할 수 있도록 프로그램(명령어 집합)을 만드는 일 컴파일 : 프로그래밍 언어를 컴퓨터가 실행 가능한 기계어로 만드는 일 컴파일러 : 기계어로 바꿔주는 프로그램 (ex. 자바 컴파일러, gcc) 자바 프로그래밍 자바의 역사 : 1991년 제임스 고슬링을 비롯한 선 마이크로 시스템즈 연구원들이 소형 가전에 사용되는 소프트웨어 언어로 개발. 기존 C언어나 C++의 경우 포인터로 직접 메모리에 접근하여 개발되기 때문에 잘못 개발하면 시스템이 다운되는 일이 일어날 수 있는데 자바는 내부적으로 메모리 처리를 해주어 좀 더 안전하게 개발할 수 있다. 하지만 다른 프로그래밍 언어보다 처리가 늦다는 단점이 있지만, 성능 개선으로 처리가 빨라지고 하드웨어 기..

메트릭 등록 - 예제 만들기 서비스 비즈니스에 특화된 부분을 모니터링 하기 위해서는 메트릭을 직접 등록하고 확인해야 한다. 서비스 중 주문수, 취소수, 재고 수량 같은 메트릭은 공통된 부분이 아닌 각각 비즈니스에 특화된 부분이다. 시스템 운영중 취소수가 갑자기 증가하거나 재고 수량이 임계치 이상으로 쌓이는 부분들은 CPU나 메모리 사용량 같은 시스템의 문제가 아니기 때문에 기술적인 메트릭으로 확인할 수 없다. 이럴 때 비즈니스 메트릭이 있으면 자사 시스템의 문제를 빠르게 파악하는데 도움을 준다. 예제로 만들 메트릭 주문수, 취소수 상품을 주문하면 주문수가 증가한다. 상품을 취소해도 주문수는 유지한다. 대신에 취소수를 증가한다. 재고 수량 상품을 주문하면 재고 수량이 감소한다. 상품을 취소하면 재고 수량이..

그라파나 프로메테우스가 DB라고 하면, 이 DB에 있는 데이터를 불러서 사용자가 보기 편하게 보여주는 대시보드가 필요하다. 그라파나는 매우 유연하고, 데이터를 그래프로 보여주는 툴이다. 수 많은 그래프를 제공하고, 프로메테우스를 포함한 다양한 데이터소스를 지원한다. 그라파나 - 설치 https://grafana.com/grafana/download 사용중인 OS에 맞춰 다운로드 진행 실행 - 윈도우 압축 푼 파일에서 bin 폴더로 이동 grafana-server.exe 실행 실행 - MAX 터미널에서 다운받은 폴더로 이동하고 bin 디렉토리 이동하여 ./grafana-server OS 에서 실행이 막힌다면 보안설정에 허용 처리를 한 후 다시 실행한다. 실행화면 http://localhost:3000 첫 ..