목록전체 글 (45)
ENN
doodle 개발 중 자주 보이는 에러들을 정리했다. 1. 4XX 클라이언트 오류로 해당 요청이 올바르지 않다는 의미이다. 400 Bad Request(잘못된 요청) : 요청 자체가 잘못되었을 때 사용하는 코드이다. BadRequest(400) : 이미 친구(Type 1)인 경우 BadRequest(400) : request body 값이 잘못된 경우 (이메일과 아이디가 일치하지 않는 경우) 401 Unauthorized(권한 없음) : 인증이 필요한 리소스에 인증 없이 접근할 경우 발생한다. 이 응답 코드를 사용할 때에는 반드시 브라우저에 어느 인증 방식을 사용할 것인지 보내야 한다. Unauthorized(401) : 로그인 하지 않고 요청 시 403 Forbidden(거부됨) : 서버가 요청을 거부..
controller에서 분명 DTO의 파라미터와 mapper.xml의 값을 같게 사용하였는데 에러가 발생했다. 데이터베이스의 모든 컬럼을 not null로 설정해줬고 필요하다면 default 값도 설정해 놓았는데 생긴 오류였다. 내용) BindingException: Parameter '...' not found. Available parameters are [arg2, arg1, arg0, param1, param2] 위는 컴파일러가 파라미터를 발견을 못해서 생기는 오류로, controller에 @RequestParam("userid")와 같이 직접 파라미터 명시를 해줘야 한다. @PostMapping("/users/login") public void postlogin(@RequestParam("use..
스프링부트는 다양한 레이아웃이 가능하지만 보편적으로 아래 그림과 같은 아키텍쳐를 기반으로 설계한다. 이에 따른 doodle의 디렉토리 구조이다. 1. src/main/java 자바(.java) 파일이 모여있는 곳으로, 스프링부트가 MVC 패턴의 서블릿 구조를 잡아주기 때문에 따로 서블릿을 만들 필요 없이 스프링 구조에 맞게 패키지와 클래스 파일들을 생성해 작성하면 된다. 기본적으로 controller, service, dao가 여기에 포함된다. 2. src/main/resources 자바 클래스에서 사용하는 리소스들을 보관하는 곳이다. DB 연결을 위한 자원, 의존성 주입을 위한 xml 파일 등 자바 코드 외 모든 자원은 이곳에 넣어주면 된다. 3. build.gradle pom.xml에 여러 개의 de..
Doodle의 DB를 설계하면서 컬럼마다 어떤 데이터 타입으로 작성해야 할지 고민해 보았다. MySQL의 데이터 타입은 크게 3가지로 나뉜다. 1. Numeric types(숫자형 타입) 2. Date and time types(날짜 및 시간 타입) 3. String types(문자열 타입) create table users ( username varchar(30) NOT NULL, nickname varchar(30) unique not null, email varchar(50) unique not null, userid varchar(30) unique NOT NULL, userpw varchar(40) not null, primary key (userid) ) create table challeng..
Spring Controller는 URL 요청을 다양한 방법으로 처리한다. Redirect? redirect는 웹 브라우저(사용자)가 어떤 URL로 웹 서버를 요청했을 때 다른 URL로 넘겨주는 것을 말한다. 예를 들어, Gmail로 접속했을 때 로그인이 되어 있지 않다면 로그인이 선행되어야 하기 때문에 로그인 페이지로 이동시키는 것을 redirect라고 한다. redirect:의 다음 문자열이 "/"로 시작하면 웹 어플리케이션을 기준으로 이동 경로를 생성하고, 그렇지 않으면 현재 경로를 기준으로 한 상대 경로를 사용한다. ... @Controller public class HomeController{ @GetMapping(path="/") public String hello(){ System.ou.pr..
NLP 자연어란 인간이 일상생활에서 구사하는 언어 그 자체 즉, 인간의 언어를 의미함. 이것을 처리하는 자연어 처리(Natural Language Processing)란 기계가 인간의 언어인 자연어를 이해하고 추론하여 처리하는 일련의 과정을 말함. NLP Process Text Preprocessing - 특수문자나 공백, 대소문자, 이모티콘 처리 등 AI가 학습할 수 있도록 정제하는 작업 Feature Vectorization - 전처리된 텍스트 데이터에서 특징(feature)를 얻어내어 벡터값을 부여함 AI Modeling - Feature vectorization한 텍스트 데이터를 머신러닝 또는 딥러닝 모델을 적용해 학습-예측하는 단계 NLP Library NLTK(National Language ..
HTTP 프로토콜의 특징이자 약점을 보완하기 위함 Connectionless Protocol : 클라이언트가 서버에 요청을 보냈을 때 그 요청에 해당하는 응답을 보낸 후 연결을 끊음 Stateless Protocol : 커넥션을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않음 정보가 유지되지 않으면, 페이지를 이동할 때마다 동일한 동작을 반복해야 하는 번거로움이 생김. 따라서 이러한 번거로움을 줄이기 위해 쿠키와 세션을 사용함 쿠키(Cookie) HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문했을 때, 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일 HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조, 재사용함 세션(Session) 방문자..
개발자가 지정한 SQL, 저장 프로시저 그리고 몇 가지 고급 매핑을 지원하는 SQL Mapper (Spring boot + Mysql 환경에서 사용) JDBC로 처리하는 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 대신해줌 기존에 JDBC를 사용할 때는 DB와 관련된 여러 복잡한 설정(Connection)들을 다루어야 했지만 SQL Mapper는 자바 객체를 실제 SQL문에 연결함으로써, 빠른 개발과 편리한 테스트 환경을 제공함 데이터베이스 record에 원시 타입과 Map 인터페이스 그리고 자바 POJO를 설정해서 매핑하기 위해 xml과 Annotation을 사용할 수 있음 장점 SQL에 대한 모든 컨트롤을 하고자 할때 매우 적합 SQL쿼리들이 매우 잘 최적화되어 있을 때에 유용 단점 애플리케이션..