Java, Spring/프로젝트로 스프링 이해하기

    [LMS 만들기] 회원정보 수정 - 우편번호 찾기, ajax와 Rest API

    [LMS 만들기] 회원정보 수정 - 우편번호 찾기, ajax와 Rest API

    | Today I Learned 1. 회원 정보 수정을 할 때 중요하게 볼 사항 회원 정보 수정 (1) 화면에 보여주지 않을 정보 (x) (2) 화면에만 보여줄 정보 (수정 불가) - readonly (3) 수정 가능한 정보들 2. 우편번호 찾기 - 여러 api들이 있지만, 가장 많이 사용되는 것은 다음 api이다. https://postcode.map.daum.net/guide - 위 링크에 들어가면 다양한 사용법들이 있는데, - 수업에서는 [ iframe을 이용하여 레이어 띄우기 ] 방법을 사용했다. - [예제 코드 보기]를 누르면 각 요소들에 자바스크립트를 사용해서 우편번호를 가져오는 법을 알려주는데, 긁어 와서 요소 id명이나 실행 함수명을 고쳐쓰면 된다. 3. ajax를 통한 처리 : 비동기식 ..

    [LMS 만들기] @Controller 와 @RestController 정확히 알기, AJAX로 Json 데이터 전송하기, Principle(로그인 정보)

    [LMS 만들기] @Controller 와 @RestController 정확히 알기, AJAX로 Json 데이터 전송하기, Principle(로그인 정보)

    | Today I learned 1. @Controller와 @RestController의 차이 - 앞에서는 내가 @Controller와 @RestController에 대해 차이를 정리할 때, 잘못된 정보를 가지고 있었다. - @Controller로도 @RestController처럼 Json 타입의 데이터를 보내는 건 가능하다. - 그럼에도 굳이 둘을 나눠서 쓰는 건, 사용 목적에 따라 쓰임새를 나누어두기 위함으로 보인다. * 아래 내용 원본 출처 : https://mangkyu.tistory.com/49 (1) @Controller : 주로 View를 반환한다. Model로 Data-binding 가능 @Controller View를 반환할 때 Data를 반환할 때 목적 @Controller는 주로 V..

    [LSM 만들기] 강좌 목록 구현하기 - 스마트에디터, 등록/수정 동시 처리

    [LSM 만들기] 강좌 목록 구현하기 - 스마트에디터, 등록/수정 동시 처리

    | 강좌 목록 - 강좌 상세페이지 구현 - 오늘 수업에서는 강좌목록과 강좌 상세페이지를 구현했다. - 방법은 카테고리 목록 및 상세페이지 구현을 할 때 쓴 MVC모델과 동일. - MVC 모델 : HTTP request Controller Service [JPA/MyBatis DB] - 새롭게 배운 내용만 별도로 정리하기로 했다. 구분 새롭게 배운 내용 Client Back C 강좌 등록 등록 및 수정 상태에 따른 버튼 노출 등록과 수정을 동시에 처리하기 (상태값 필요) R 강좌 조회 select - option 에 thymeleaf로 반복문 돌리기 CollectionsUtil로 세련된 예외처리하기 MyBatis XML 공통영역 로 빼기 U 강좌 수정 (리마인드 - @Transactional) 스마트 에디..

    [LMS 만들기] 카테고리 수정, 삭제, 정렬

    [LMS 만들기] 카테고리 수정, 삭제, 정렬

    | 개요 - 벌써 12시.. - 새롭게 배운 내용만 정리했다.. | 오늘 새롭게 배운 내용 1. Form에 hidden type의 input으로 update 데이터 전송하기 - 사실 수업을 들으면서, 현장에서도 이렇게 쓸까, 의아했던 부분이다. - 아래의 내용을 보면 수정할 사항들을 제이쿼리를 통해서 하위 input이 모두 hidden타입인 폼안에 때려박 넣어줬다. // 상단 생략 카테고리 추가 ID 카테고리명 순서 사용여부 비고 사용 수정 삭제 내용이 없습니다. - 그런데 [F12]를 눌러면 아래와 같이 숨겨진 폼이 다 보인다. - [F12]는 기획자로 근무했던 잠시동안 그렇기에 매우매우 애용했던 키이기도 한데(무슨 데이터를 쓰나 보려고), 생각해보면 그때, 보이는 데이터들도 있고, 안 보이는 데이터들..

    [LMS만들기] 회원 상태 변경 및 비밀번호 초기화

    | 회원 상세페이지에서 회원 상태변경하기 - 회원 목록 --> 회원 상세정보 뷰 - 오늘 수업에서 만든 상세정보 뷰는 매우 간소화된 폼이었다. - 큰 서비스를 제공하는 회사의 경우, 이보다는 더 복잡할 것 같다. ex. 만약 에듀테크 회사의 LMS라면, 여기에 결제내역, 수강이력, 이벤트 참여 이력 등등등이 포함될 것 같다. - 오늘 배운 내용에서 가져가야할 점은, 서비스 관리자(ex. 영업/관리팀)가 직접 회원 상태를 변경할 수 있도록 해주는게 필요하다는 점. 그리고 그것은 MVC를 통해서 할 수 있다는 점. * LMS Users Administration 예시 https://www.vedamo.com/knowledge/platform-tutorials/lms-users-administration/ L..

    [LMS 만들기] JPA와 MyBatis로 회원 목록 구현

    [LMS 만들기] JPA와 MyBatis로 회원 목록 구현

    | 회원 목록 조회 - 관리자 페이지 중 회원 목록 조회를 JPA와 MyBatis 두가지를 통해 구현해보았다. - MyBatis는 전자정부시스템에서 많이 사용되는 Persistence Framework 중 하나로, Mapper와 xml을 사용하는 것이 특징이다. | JPA 1. dependency 추가 2. application.yml 설정 ---- 위 두 가지는 생략 3. repository 인터페이스 생성 public interface MemberRepository extends JpaRepository { } 4. Service 객체에서 필수 생성자를 통해 주입 후 findById(), findAll() 등의 직관적인 메소드를 사용해 결과물 반환 @Service @RequiredArgsConstru..

    [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시간 내에 링크를 통해 비밀번호 재..