목록Back-End (8)
작심 365

참고 : inflearn 스프링 MVC 2 편 예전에 강의 들을 때는 잘 안 와닿았던 개념이었는데 프로젝트에 몇 번 Spring Security를 적용하다 보니 다시 한번 Filter 에 대해서 궁금해져서 이번에 다시 강의를 듣고 한번 정리하니까 이해가 되기 시작했다..Spring Filter정리 스프링 필터는 스프링 application에 들어오는 HTTP 요청과 나가는 HTTP 응답을 가로채서 어떤 처리를 할 수 있게 해주는 웹 필터이다. 서블릿 필터와 유사한 역할을 하지만, 스프링 프레임워크에 더 맞는 추가 기능을 제공한다. 필터의 흐름HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 필터를 적용하면 필터가 호출 된 다음에 서블릿이 호출된다. 예를 들어 모든 고객의 요청 로그를 남기..

1. 이메일 계정 만들기이메일을 전송할때 사용할 구글 계정을 하나 생성한다.자주 쓰는 본래 계정을 그대로 사용하면 메일을 너무 많이 보낼시 계정이 중지될수도 있으니 가능하면 새로 생성해서 하는게 좋다.2. Gmail 페이지에서 톱니바퀴 버튼을 클릭하고 See all settings 클릭3. Forwarding and POP/IMAP 에서 설정 추가POP 와 IMAP 사용 허용으로 바꾸고 저장한다.4. 2단계 인증 설정2단계 인증 설정을 안했을경우 추가해준다.검색창에 앱 비밀번호라고 치고 앱 비밀번호를 설정하는 페이지에 들어간다.5. 앱 비밀번호 추가앱 이름을 작성하고 create 버튼을 누르면 애플리케이션에서 사용할 비밀번호가 생성된다.

Security 라이브러리 추가 스프링 부트 프로젝트를 생성하고 security 라이브러리를 추가한다. 프로젝트를 빌드하고 실행을 시키면 이런 화면이 나온다. 이것은 스프링에서 라이브러리 추가시 우리가 따로 설정을 하지 않아도 기본으로 security 관련 설정들을 해주기때문이다. 스프링은 우리가 사용할 임시 username 과 password 를 생성해 준다. username 은 user , password는 inetelliJ 실행창에서 확인이 가능하다. SecurityProperties 임시 유저 정보들은 아래 패키지에 속한 SecurityProperties라는 클래스에서 생성해준다. org.springframework.boot.autoconfigure.security SecurityProperti..

정적 컨텐츠란 원래 파일 그 자체를 그대로 보여주는 것. 동적인 데이터가 없는 html 페이지. 동적인 데이터가 없기 때문에 항상 같은 내용만 보여주게 된다. /resources/static/ 스프링 부트는 정적 컨텐츠를 해당 경로밑에서 찾는다. 정적 html 페이지 예시 static 폴더 밑에 html 파일 생성. 정적 페이지 요청 url 에 파일명 그대로 입력한다. MVC와 템플릿 엔진 MVC 는 Model, View, Controller 역할로 코드를 분리하는 것을 말한다. View 는 사용자에게 보여지는 화면을 나타낸다. 템플릿 엔진이 여기에 해당한다. 참고로 View는 Model 에만 의존을 해야되고, Controller에는 의존하면 안된다. (-> View 내부에 Model 관련 코드만 허용한..

Java 에서 클래스를 만들면 클래스와 관련된 멤버변수를 선언하게 되는데 이때 getter , setter 함수를 통해 멤버변수에 쉽게 접근해서 값을 변경하거나 가져올 수 있다. intelliJ 같은 툴도 자동으로 클래스에서 getter, setter 함수를 만들어 주는 기능도 제공하고 있다. 손쉽게 만들어서 가져다 쓸수 있기때문에 나도 자주 사용을 해왔는데 알고보니 좋은 방법이 아니라고 한다. 먼저 getter 와 setter 를 사용하는 이유에 대해서 생각해 보자. Getter와 Setter를 사용하는 이유 우선, 자바에서 클래스를 만들고 그 클래스 안에 맴버 변수들은 외부에서 마음대로 접근할 수 없도록 해야 한다. 그래서 보통은 맴버 변수 제어자를 private 으로 둔다. 그러면 당연히 외부 클래..

Array 와 ArrayList 차이 공통점 둘다 하나의 묶음으로 데이터를 저장한다. 차이점 Array(배열)의 경우 길이가 지정되면 그 길이를 변경할 수 없다. 만약에 미리 지정한 길이가 부족 한 경우 직접 새로운 배열을 만들어서 모두 옮겨주어야 한다. 길이가 남는 경우는 공간이 낭비되는 단점이 있다. ArrayList의 경우는 가변 길이이다. 미리 지정한 길이가 부족할 경우 자동으로 크기를 늘려준다. Array 배열은 같은 타입의 데이터들을 하나로 묶어서 다루는 것을 말한다. 배열은 이미 지정된 크기는 변경할수 없기 때문에 지정된 크기보다 많은 양의 데이터를 저장할 경우 에러가 발생한다. 배열은 변수에 저장된 데이터 묶음들이 들어있는 시작 주소 값이 저장된다. ArrayList ArrayList는 L..

java로 개발을 하다보면 각 프로젝트에서 사용하는 jdk 버전을 다르게 사용할 때가 있다. intellJ 에서 jdk 버전을 바꾸는 방법을 정리 했다. (Mac 기준 ) - 윈도우는 메뉴명이 약간 다를수 있음. 먼저 인텔리제이 File -> Project Structure 메뉴에 들어간다. 거기서 Project Settings 탭에 Project 에서 원하는 jdk 버전을 선택한다. 밑에 Language level 도 맞춰서 설정 해준다. 그 다음 Modules 탭에서 Language level 이 일치하는지 확인해 준다. 그리고 밑에 있는 Apply 버튼과 Ok 버튼을 눌러준다. 다음으로 Intellj IDEA -> Settings 에 가서 Build, Execution, Deployment -> B..

더보기 김영한님 스프링 입문 강의를 보고 학습한 내용을 정리한 글 입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard https://start.spring.io/ 스프링에서 운영하는 스프링 프로젝트를 쉽게 만들수 있도록 도와주는 사이트 입니다. 가장 먼저 Project 설정 부분에서 Maven 과 Gradle 로 나뉘고 Gradle에서 Groovy 와 Kotlin 으로 언어를 선택할수 있습니다. 강의에서 사용하는 언어는 Groovy 입니다. Maven과 Gradle 둘다 프로젝트를 빌드 하는데 도움을 주고 라..