스프링 시큐리티 spring security 는 스프링 기반의 애플리케이션 보안(인증, 인가, 권한) 을 담당하는 스프링 하위 프레임워크이다. 인증과 인가 인증은 사용자의 신원을 입증하는 과정이다. 예를 들어 사용자가 사이트에 로그인을 할 때 누구인지 혹인하는 과정을 인증이라고 함 인가는 인증과는 다르게 사이트의 특정 부분에 접근할 수 있는지에 권한을 확인하는 작업임 예를 들어 ㅗ간리자는 관리자 페이지에 들어갈 수 있지만 일반 사용자는 관리자 페이지에 들어갈 수 없다. 이런 권한을 확인하는 과정을 인가라고 한다. 인증과 인가 관련 코드를 아무런 도구의 도움 없이 작성하려면 굉장히 많은 시간이 필요하고 스프링시큐리티를 사용하면 아주 쉽게 처리가 가능하다. 스프링 시큐리티 스프링 기반 애플리케이션의 보안을 ..
전체 글
내인생의 카드는 몇장일까?Optional 이란? optional 이라는 단어는 우리 나라말로 "선택적인"이라는 의미이다. 즉, 객체를 편리하게 처리하기 위해서 만든 클래스라고 보면된다. Optional 클래스는 java.util 패키지에 속해 있다. public final class Optional extends object object 클래스를 확장했고 final 클래스로 선언되어 있으며, generic 한 클래스다. final 변수는 변경불가능 하지만, final 클래스로 선언했다고 해서 내용 변경이 불가능한 것은 아니다. 대신 추가적인 확장이 불가능하다. 즉 자식 클래스를 만들 수 없다는 의미다. 이 곳에 물건을 넣을 수도 있고, 아무 물건이 없을 수 도 있다. 그래서 기본적인 클래스를 만들기 위해서는 new Optiona..
API ( Application Programming Interface 애플리케이션 프로그램 인터페이스) API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체 식당에 가면 주방에 가서 요리를 주문하지 않고 점원에게 요리를 주문한다. 그리고 점원은 요리를 만들어 달라고 요청을 한다. 그리고 요리가 완성되면 다시 점원이 손님에게 요리를 전달한다. 여기서 손님은 클라이언트, 주방에서 일하는 요리사를 서버, 그리고 중간에 점원을 API라고 생각하면 된다. API역할 1. 서버와 데이터베이스에 대한 출입구 역할 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 된다. API는 이를 방지하기 위해 여러분이 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해준다. 2...
도커 버전 출력 C:\Users\user>docker -v Docker version 24.0.7, build afdd53b 도커 이미지 다운로드 docker pull mariadb 도커 이미지 다운로드 (특정버전) docker pull mariadb:10.5 도커 이미지 확인 C:\Users\user>docker images REPOSITORY TAG IMAGE ID CREATED SIZE mariadb latest 299933e6115e 3 days ago 405MB mysql latest a88c3e85e887 3 weeks ago 632MB mariadb lts-jammy 6e74e5a7ddb3 3 months ago 404MB 도커 컨테이너 리스트 출력 C:\Users\user>docker ps..
1. ORM Object relational mapping 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법 데이터베이스에 age와 name 컬럼에 데이터를 꺼내올때 보통은 SQL언어로 데이터를 꺼내 사용함 하지만 ORM으로 사용하면 마치 객체처럼 사용이 가능하고 SQL을 몰라도 원하는 데이터를 받아올 수 있음 즉 객체와 데이터베이스를 연결해 자바 언어로만 데이터베이스를 다룰 수 있게 하는 도구를 ORM이라고 함 장점 1. sql을 직접 작성하지 않고 사용하는 언어로 데이터베이스에 접근 할 수 있다. 2. 객체지향적으로 코드를 작성할 수 있기 때문에 비즈니스 로직에만 집중할 수 있다. 3. 데이터 베이스 시스템이 추상화 되어있기 때문에 mysql 에서 postgresql로 전환하더라도 추가로 드는 작..
타임리프 템플릿 엔진이며, 템플릿 엔진은 스프링 서버에서 데이터를 받아 우리가 보는 웹페이지. html 상에 그 데이터를 넣어 보여주는 도구 입니다. 템플릿 엔진은 html과 함께 템플릿 엔진을 위한 문법을 같이 사용합니다. 타임리프 표현식과 문법 표현식 설명 ${...} 변수의 값표현 #{...} 속성 파일값 표현식 @{...} url 표현식 *{...} 선택한 변수의 표현식. th:object에서 선택한 객체에 접근 타임리프 문법 표현식 설명 예제 th:text 텍스트를 표현할 때 사용 th:text=${person.name} th:each 컬렉션을 반복할 때 사용 th:each="person:${persons}" th:if 조건이 true인 때만 표시 th:if="${person.age} >= 20..
Junit 자바언어를 위한 단위테스트 프레임워크이다. 단위테스트란, 작성한 코드가 의도대로 작동하는지 작은 단위로 검증하는 것을 의미 import org.junit.jupiter.api.*; public class JunitCycleTest { @DisplayName("전체 시작전 처음한번, ex) db연결, 테스트환경 초기화") @BeforeAll static void beforeAll(){ System.out.println("@BeforeAll"); } @DisplayName("매번실행") @BeforeEach public void beforeEach(){ System.out.println("@BeforeEach"); } @Test public void test1(){ System.out.printl..
개발정보 IntelliJ IDEA Community Edition 2023.1.1 java 11 tomcat 9 web project 프로젝트 생성 1) new project 클릭 2) Empty Project 선택 name : 프로젝트명 입력 3) 폴더 및 파일생성 - webapps 폴더생성 - WEB_INF 폴더생성 - web.xml 파일생성 - index.jsp 파일생성 web.xml 추가 DynamicWEb index.html index.jsp index.htm default.html default.jsp default.htm index.jsp hello index smart start plugin 설치 및 tomcat 설정
Spring Boot Build 없이 Run 1. boot 서비스 pom.xml 파일에 아래 추가 org.springframework springloaded 1.2.8.RELEASE 2. run Configurations 설정 boot 서비스 우클릭 → Run As → Run Configurations → Spring Boot App → Arguments → VM arguments 에디터 창에서 아래 설정 작성 -javaagent:C:\Users\Administrator\.m2\repository\org\springframework\springloaded\1.2.8.RELEASE\springloaded-1.2.8.RELEASE.jar -noverify 단, 경로는 본인 PC 경로 설정 할것 3. Mvn ..
톰갯 재시작 없이 수정된 java 소스 적용되는 방법으로 이름은 spring-loaded이며 다운로드는 아래 링크를 통하여 다운로드 받을 수 있다. - homepage : https://github.com/spring-projects/spring-loaded - maven : http://mvnrepository.com/artifact/org.springframework/springloaded/1.2.8.RELEASE 먼저 사용을 하기 위해서는 해당 사이트에서 파일을 다운로드 한다. 파일명은 현재 기준 가장 최근 파일이 아래와 같다. springloaded-1.2.8.RELEASE.jar 해당 파일만 다운로드 받으면 준비가 끝난다. 제법 간단하다. ** jar 경로를 적어 주는 설정이 있다. 내 PC는 ..