[NodeJS] 시퀄라이즈에 대하여
·
카테고리 없음
시퀄라이즈는 MySQL, MariaDB, SQLite and Microsoft SQL Server 를 지원하는 Node.js ORM 이다.ORM(Object-Relational Mapping)은 관계형 데이터베이스에 있는 엔티티를 자바스크립트에 있는 객체나 클래스처럼 이용할 수 있게 만들어 주는 것이다.왜 사용하는지?데이터베이스의 자료를 컴퓨터 프로그래밍 적인 언어의 관점에서 맞출 수 있도록 해주기 위함이다.시퀄라이즈 모델 생성sequelize.difine 함수를 통해서 만들 수 있다.예제 코드module.exports = (sequelize, DataTypes) => { const Users = sequelize.define("Users", { id: { type: DataT..
[인실리코젠] 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 ..
[경시대회] 왜 아픈 상처에 소금을 뿌리십니까?
·
알고리즘
소스 코드#include #pragma warning(disable:4996)int main() { int n; scanf("%d", &n); int knee[50][50]; for (int i = 0; i maxRow) ? i : maxRow; minCol = (j maxCol) ? j : maxCol; } } } //상처를 모두 포함하는 직사각형의 넓이를 계산 int width = maxCol - minCol + 1; // 가장 오른쪽 열 - 가장 왼쪽 열 + 1 int height = maxRow - minRow + 1; // 가장 위의 행 - 가장 아래 행 + 1 int area = wi..
[경시대회] 소믈리에 구름이
·
알고리즘
문제 정리구름이가 가진 모든 와인 용량은 N-1로 통일7잔 이라면 와인의 용량은 6임한 병의 와인을 따를 시 N-1개 잔을 각 잔에 정확히 1만큼씩 따라야함7잔 이라면 7잔 중 6잔에 1만큼 씩 따라야함문제 접근 방법 1qsort 후 첫 번째 인덱스 제외한 나머지 인덱스 증가내림차순으로 정렬모든 인덱스가 같은지 검사하는 check 함수 작성해서 모든 인덱스가 같다면 종료1차 시도#include #include #pragma warning(disable:4996)int compare(const void*a, const void*b) { return(*(int*)b - *(int*)a); //내림차순 }int check(int *arr,int n,int a){ for(int i = 0 ; i 문제에서 주어졌..
[WEB] www.google.com 접속 시 발생하는 흐름
·
자바 스크립트
"브라우저가 어떻게 동작하는지 아세요? 이 질문에 정확하게 대답할 수 없었다. 이에 브라우저의 동작 과정에 대해서 자세히 파헤쳐 보도록 하겠다. 1~5 단계는 데이터를 받아오는 과정, 6~9 단계는 웹 브라우저에 렌더링 되는 과정이다. 데이터를 받아오는 과정 1. www.google.com 입력 → 입력한 url 주소 중 도메인 이름에 해당하는 google.com을 DNS 서버에서 검색 더보기 도메인 인터넷에 연결된 컴퓨터를 사람이 쉽게 기억하고 입력할 수 있도록 문자로 만든 인터넷 주소 웹 브라우저는 DNS 서버에 검색하기 전에 캐싱된 DNS 기록을 먼저 확인 만약 해당 도메인 이름에 맞는 IP 주소가 존재하면, DNS 서버에 해당 도메인 이름에 해당하는 IP 주소를 요청하지 않고 캐싱된 IP 주소를 ..
[인실리코젠] 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..