[인실리코젠] Spring Security Interceptor 와 JSESSION ID에 대하여
·
인실리코젠
제목을 보고 의아할 수 있다. 전혀 연관 없는 두 개념이 왜 함께 제목에 적혀있는지 의문이 들 수 있지만, 제목을 위와 같이 지을 수 밖에 없었던 이유를 글을 보면서 이해하도록 하자.  세션 속성 삭제로 인한 NULL 데이터 전달 세션 속성 삭제라는 큰 주제로 이 글을 시작하겠다. 필자는 특정 조건에 대하여 모달을 팝업하는 개발을 진행하였다. 조건을 통해 분기를 태우던 중 위에서 언급한대로 이전에 설정해둔 세션이 NULL 데이터로 넘어오는 현상을 맞이하였다. NULL이 어디에서 발생했는지 알아보기 위해 직접 로그를 파악해보았다.file 세션에 null 데이터가 인식되는 것을 알 수 있다. 왜 발생했는지 프로젝트의 전체적인 흐름을 파악해가며 이해해보자.org.egovframe.rte.ptl.mvc해당 프로..
[인실리코젠] Spring CRUD - 게시글 조회 구현 중 겪은 트러블 슈팅
·
인실리코젠
Body 데이터에서 DB 엔터티 사용으로 인한 외래키 참조 불가 문제 발생 이게 무슨 뜻인지 코드를 통해 살펴보겠다. 문제발생문제가 발생했던 게시판 조회 컨트롤러의 내용은 아래와 같다.@PostMapping("/board/selectBoardList")@ResponseBodypublic Page selectBoardList(@RequestBody Board board) { return boardService.getPagedBoard(board.getPageNo(), board.getPageUnit());}...이하 생략 해당 코드에서 파일 엔터티를 게시판 엔터티와 연관 관계를 매핑하였을 때 글 조회 자체가 막히는 오류가 발생하였다. 1차 적으로 발생한 이슈는 @RequestBody Board board ..
[인실리코젠] Spring Security + JWT + JPA
·
인실리코젠
더보기 지난 포스팅에서 로그인 기술에 세션 로그인을 사용하였고 추가적으로 Spring Security 공부와 동시에 기록을 남겨두고자 글을 작성합니다. Spring Security란? Spring 기반의 애플리케이션 보안을 담당하는 Spring 하위 프레임워크이다. Spring Security는 인증과 권한에 대한 부분을 Filter 흐름에 따라 처리한다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller사이에 위치한다는 점에서 적용 시기의 차이가 있다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 작..
[인실리코젠] Spring CRUD - 회원 가입
·
인실리코젠
사용 기술 Spring Boot + MVC + postgreSQL + ajax + jQuery Validation + Hibernate validator + JPA 더보기 기본적인 환경설정이나 버전에 대한 내용은 생략하고 코드에 대한 설명과 사용한 기술에 대해 설명할 것임 유저 및 힌트 테이블 모델 정의 회원 가입에 필요한 테이블은 유저 테이블과 힌트 테이블이다. 힌트 테이블이 필요한 이유는 비밀번호 찾기 시 필요한 힌트에 대한 답변을 유저가 가지고 있고, 답변에 대한 질문이 무엇인지 알기 위해서이다. 요구 사항에 따라서 Hibernate Validator를 사용하였다. package com.insilicogen.CRUD_PRJ.user.service; import java.util.Date; impor..
[인실리코젠] Spring CRUD 프로젝트 요구 사항 분석 및 데이터베이스 설계
·
인실리코젠
더보기 본 글은 (주)인실리코젠 이병준 주임님과 이수호 주임님께서 제공해주신 Spring CRUD 프로젝트 입니다. 요구사항 요구사항 세부내용 요구 기술 사용자 회원 가입 사용자 아이디는 중복 검사를 통해 유효성 검사 Front : jQuery validation Back : Hibernate validator 비밀번호는 숫자, 영문, 특수문자를 조합하여 최소 8자리 비밀번호를 찾기 위한 사용자 비밀번호 힌트 풀 제공 필수 입력사항 표시 항목 : 사용자 아이디, 사용자 이름, 비밀번호, 성별, 생년월일, 비밀번호 힌트 회원 비밀번호 찾기 회원 가입 시 선택한 비밀번호 힌트를 통해 비밀번호 찾기 새로운 비밀번호로 변경 가능하도록 구현 공지사항 게시판 게시판 등록은 관리자 권한 사용자만 등록 Tabulato..
[인실리코젠] Web Crawling - Finish
·
인실리코젠
더보기 본 글은 Web Crawling -2 에 이어서 작성하는 글입니다. 전체적으로 코드 리팩토링이 발생하였습니다. 문제 풀이는 완료되었으며 풀이에 대한 과정을 작성하는 글입니다. 백엔드 요구 사항 번호 기능 세부사항 R01 네이버 IT 뉴스 일반 크롤링 하여 DB에 저장 DB 정보 : 제목, 내용(요약), 언론사명, 업로드 시기, 이미지 R02 버튼 클릭 시 크롤링 진행 DB 초기화 및 재생성 필요 R03 Spring Boot 사용 Design Pattern: MVC R04 DB CRUD Java Persistence API (Hibernate) R05 페이지네이션 시 DB에서 작업 limit , offset으로 잘라서 가져오기 프론트엔드 요구 사항 번호 기능 세부사항 R01 초기페이지 버튼, 표(제..
[인실리코젠] WebCrawling - 2
·
인실리코젠
더보기 본 글은 WebCrawling- 1 에 이어서 작성하는 글입니다. 문제 풀이 과정을 기록하는 글이기에 완성된 코드가 없을 수 있고 부족한 부분이 있을 수 있다는 점을 미리 알립니다. Spring Boot + MVC 패턴 활용하여 크롤링한 정보 화면에 띄우기 해당 글에서 작성한 내용을 바탕으로 Spring Boot와 MVC 패턴을 활용하여 프로젝트를 이어서 진행하였다. https://minwook6457.tistory.com/22 [인실리코젠] Spring Boot + MVC 이론 정리 MVC (Model - View - Controller) 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴 모델 : 데이터와 비즈니스 로직 관리 뷰 : 레이아웃과 화면을 처리..
[인실리코젠] Spring : 용어 정리(기본)
·
인실리코젠
컨테이너 프레임워크 안에서 인스턴스들의 생명 주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 부여 작성한 코드의 처리 과정을 컨테이너에서 수행 스프링 컨테이너는 스프링 프레임워크 핵심에 위치하며, DI를 통해 애플리케이션을 구성하는 컴포넌트를 관리 IOC 컨테이너 Inversion Of Control : 제어의 역전 인스턴스의 생성 및 소멸을 개발자 대신 컨테이너가 해줌 필요한 이유 컴포넌트 / 오브젝트가 자유로운 삽입이 가능하도록 하기 위해 서비스의 configuration이 일관성을 갖도록 하기 위해 단일화된 서비스의 접근 방법 제공 비지니스 오브젝트에 부가적인 enterprise service 제공 DI Dependency Injection : 의존성 주입 의존성이 있는 컴포넌트를 개발자가 ..