전체 글

전체 글

    [LMS 만들기] 관리자 로그인 구현

    | 사전 작업 1. 관리자 페이지 - 관리자페이지는 말그대로 관리자용 페이지를 말한다. - 사용자단과 구분되어지는 부분인데, 주로 아래와 같이 admin, backoffice.. 등의 키워드를 추가해놓는 형식이라한다. - (개인적인 경험으로는 dev를 붙이기도 하는 걸 보기도 했다).. 그냥 붙이기 나름 같다. - 수업에선 미리 관리자용 뷰를 작성하고, Controller로 주소를 매핑했다. - 조금 특이했던 점은, 강사분은 사용자단과 관리자단을 구분하기 위해 컨트롤러의 논리주소에 .do를 추가했다는 점. * 이 부분은 사람들마다 조금씩 사용법이 다를 것 같은데, 미래에 일하게 될 회사에선 어떨지 궁금하다. https://admin.fastlms.co.kr https://backoffice.fastlms..

    [이펙티브 자바] 클래스와 상속

    보호되어 있는 글입니다.

    [LMS 만들기] 비밀번호 초기화 요청 및 메일 링크를 통한 초기화

    | 비밀번호 정책에 대하여 - Spring Security의 BCrypt로 비밀번호를 암호화한 경우 원본 비밀번호는 찾을 수 없다. (보안 때문) - 이건 다른 언어를 사용한 경우에도 마찬가지인데, - 대다수의 사이트는 비밀번호를 못 찾으면, 원본 비번을 알려주지 않고 초기화를 하도록 되어 있다. - 오늘 수업에서는 메일 링크를 통해 비밀번호를 초기화하는 정책을 배웠는데, USE CASE 흐름은 다음과 같았다. [비밀번호 초기화 USE CASE] [1] 로그인 페이지에서, 비밀번호 찾기 페이지로 이동 [2] 비밀번호 찾기 페이지에서, 이름과 이메일을 작성후 전송(비밀번호 인증키 생성) --> 결과화면 [3] 본인 이메일에 비밀번호 재설정 페이지 링크가 날라감 [4] 24시간 내에 링크를 통해 비밀번호 재..

    [LMS 만들기] 스프링 시큐러티를 이용한 로그인/로그아웃

    [LMS 만들기] 스프링 시큐러티를 이용한 로그인/로그아웃

    | 스프링 시큐러티란? - 스프링 시큐러티란, 스프링 기반의 애플리케이션의 보안을 담당하는 하위 프레임워크로, Filter를 통해 인증과 권한을 처리한다. - HTTP URI를 통해 접근 가능한 경로를 제한할 수 있으며, 제한된 경로로 접속 시, user/password로 로그인을 함으로써 인증(Authentication) 후, 인가(Ahthorization)을 한다. - 보다 자세한 사항에 대해서는 아래의 블로그가 잘 설명하고 있는 것 같다. https://catsbi.oopy.io/c0a4f395-24b2-44e5-8eeb-275d19e2a536 스프링 시큐리티 기본 API및 Filter 이해 목차 catsbi.oopy.io | 스프링 시큐러티 사용해보기 1. dependency에 의존성 추가 org..

    [이펙티브 자바] 객체의 파괴

    보호되어 있는 글입니다.

    [LMS 만들기] 회원가입 페이지 만들기

    [LMS 만들기] 회원가입 페이지 만들기

    | HTTP 요청/응답 사항 POST /member/register 파라미터 : 이메일, 비밀번호, 이름, 전화번호 정책 : - 프론트 : 이메일, 비밀번호, 이름, 전화번호 필수 정보가 입력되지 않은 경우, 이메일 형식이 맞지 않는 경우, 비밀번호 규칙이 다른 경우, 비밀번호 확인이 틀린 경우 체크 - 백엔드 : 동일한 아이디가 있는 경우, 실패 응답 [가입하기] 터치 후, 작성한 이메일로 메일 인증 성공 응답 : login-complete.html - Member 테이블 * 아래를 보면 jpa에 의해 db에 저장되는 방식이 camel -> snake로 변환되는 걸 볼 수 있다. db html(parameter) / spring 이메일 user_id userId 이름 user_name userName ..

    [LMS 만들기] 스프링 컨트롤과 주소 매핑

    [LMS 만들기] 스프링 컨트롤과 주소 매핑

    | 스프링 컨트롤과 주소 매핑 - HTTP는 근본적으로 텍스트 기반으로 데이터를 송수신하는 일회성의 프로토콜이며, REST는 HTTP프로토콜로 자원에 대한 CRUD 요청을 하는 URI로 표현하는 기법을 말한다. - URI에 사용되는 주소는 보통 / 에 따라서 경로를 나누고 그 안에 디렉토리나 파일명, request 등을 작성하는데, 고전적인 프로그래밍 방식에서는 www.example.com/home/index.jsp 와 같이 파일 확장자가 그대로 드러났었다. - 그러나 오늘날엔 논리적인 주소를 사용해서 확장자를 숨긴다. (예를들어, 인프런의 멘토링 페이지는 https://www.inflearn.com/mentors 를 경로로 쓴다. 파일 확장자는 안 보인다.) - 스프링의 경우, Tymeleaf를 사용해..

    인텔리j에 깃허브 프로젝트 가져오기

    인텔리j에 깃허브 프로젝트 가져오기

    | 인텔리j에 깃허브 프로젝트 가져오기 - 현장에서는 보통 기존에 있는 프로젝트를 가져와서 작업하는 일이 많다. - 오늘은 인텔리j에 깃허브 플젝을 가져오는 걸 배웠는데 한 번 다시 정리해보려고 한다. 1. Get from VCS 선택하기 인텔리j를 처음 연 상태라면 [Get from VCS] 를, 아니면 [file]-[new]-[get from version control ~~] 를 선택한다. 나는 예전에 계정을 저장해뒀었는데, 로그인을 하고 필요하면 인증키를 삽입하면 된다. 2. 하단에 Clone할 로컬 저장소 위치를 지정하고 [Clone]하면 완료 클론이 잘 되었다. 아래를 보면 알 수 있지만 인텔리j는 마크다운 언어를 이미지로 뷰로 바로 볼 수 있기도 하다. README.md 파일은 여기서 수정하..

    [LSM 만들기] Maven 프로젝트 환경 보기

    [LSM 만들기] Maven 프로젝트 환경 보기

    | 개요 - 오늘은 이클립스와 인텔리j에서 Maven 프로젝트를 만들어 본 뒤, - 인텔리j의 GUI를 통해 Maven의 clean과 packing을 동작시키는 걸 해보았다. - Maven 프로젝트 생성은 처음 해보는 거라 구조를 잘 기억하기 위해 정리해보려고 한다. 1. 인텔리j 우측의 [Maven] 탭 기능 내용 기능들 Lifecycle 더블 클릭으로 플러그인 실행 package : target 생성 clean : target 해제 * 내보낼 패키지들에 대한 target를 정하는 것 * 여기선 프로젝트 생성시 WAR 파일로 설정해서 war로 나감 Plugins 내장 플러그인에 대한 세부 기능 위계 - Dependencies 의존성을 확인할 수 있는 곳 - 2. 메이븐 프로젝트의 구조 Maven Gra..