일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- DI
- BeanDefnition
- 스프링 타입컨버터
- http
- 백준 2263
- HTTP메시지
- BasicErrorController
- 스프링 파일 업로드
- 서블릿
- 스프링 빈
- HTTP 응답 메시지
- REST #REST API #HTTP 메서드
- 백준4256
- 깃허브 저장소 합치기
- 스프링 컨테이너
- 언체크에러
- 프로토콜 스택 4계층
- 프로토타입 스코프
- 웹 스코프
- 스프링 예외변환기
- 커밋로그
- HTTP 요청 메시지
- 스프링
- 객체지향
- BeanValidation
- 김영한
- 예외추상화
- 의존관계
- ExceptionResolver
- 체크에러
- Today
- Total
목록전체 글 (34)
Enthusiasm! Enthusiasm!

스프링 MVC구조에 대해 배우며 어느 정도 이해를 했고, 직접 코드를 작성하여 구조를 만들어 보니 스프링에서 실제로 어떻게 적용되고 있는지 궁금하였다. 이번 포스팅은 직접 스프링 라이브러리를 들여다보며 MVC 구조를 분석한 글이다. 서론 - 스프링 MVC 구조 다음은 스프링 MVC의 완성된 구조도이며, Sprign boot를 통해 프로젝트를 만들 때, Spring Web 의존성을 추가했다면, 다음과 같이 spring-webmvc라는 이름의 모듈이 라이브러리에 추가되어 있다. 각 구성요소의 역할과 실제 어떻게 구현되어 있는지 알아보자. DispatcherServlet Spring MVC, as many other web frameworks, is designed around the front control..
알고리즘 문제를 풀다 보면 브루트포스 문제들이 자주 나온다. 그중에서도 몇 개를 탐색하는지 정해지지 않고 1개일 때, 2개일 때... N개일 때 전부 탐색해봐야 하는 경우가 있다. 이 때 사용할 수 있는 두 개의 알고리즘을 백준 1182번 문제에 적용하며 비교해 보겠다. https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 재귀 1182번 문제는 주어진 집합(수열)의 모든 부분집합을 구한 뒤 그 합을 계산하여 주어..

이번 포스팅에서는 프로세스와 쓰레드에 대해 다룬다. 깊이 있는 내용보다는 개념을 복습하면서 헷갈리는 내용 위주로 정리하였다. 프로세스 vs 프로그램 프로그램: 프로그램은 컴퓨터에서 실행 가능한 명령어들의 집합으로, 특정 작업을 수행하기 위한 코드와 데이터의 모음. 프로그램은 주로 디스크나 저장 매체에 저장되어 있으며, 실행을 위해서는 메모리에 로드되어야 한다. → 우리가 작성한 코드들은 프로그램! 프로세스: 프로세스는 실행 중인 프로그램의 인스턴스로, 프로그램이 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말함. 프로세스는 실행 중인 프로그램의 상태와 데이터를 저장하며, 독립적인 실행 단위로 여러 개의 프로세스가 동시에 실행될 수 있다. 프로세스는 작업을 위해 CPU Time, Memory, F..

곧 사이드 프로젝트 개발을 시작할 예정이다. 프로젝트를 진행하면서 Restful API에 대한 문서화를 자동으로 해주는 도구인 Swagger를 사용할 예정인데 Swagger 사용법에 대해 미리 정리해두고자 글을 작성한다. Swagger 일반적으로 개발을 진행할 때, 백엔드 개발자와 프론트엔드 개발자로 역할이 나뉘고 두 개발자 사이에서 어떠한 방식으로 데이터를 주고 받을 지 명세가 필요하다. 이를 문서화 한게 API 명세서이며, 프로젝트 규모가 커질수록 API 명세서는 필수이다. Swagger는 Swagger Hub를 제공하며, 이를 통해 Open API를 사용해서 API를 정의하고, 관리할 수 있으며, 여러 개발자가 Swagger Hub를 통해 하나의 프로젝트에 대한 API를 작성하고 테스트 할 수 있다..
안녕하세요 방금 코딩테스트 보고 가장 기억에 남을 때 후기를 작성하고자 바로 왔습니다. 1. 시험 환경 IDE 사용불가, 환경은 프로그래머스지만 테스트 케이스만 맞았는지 확인 가능하고, 제출 시 답이 맞았는지 틀렸는지 알 수 없습니다. 네이버는 시험 환경을 굉장히 엄격하게 관리하더라고요. A4용지 1장 사용가능, 화면 공유, 실시간으로 시험장소 촬영하여 공유하는 등 공정하게 시험을 볼 수 있도록 관리했습니다. 개인적으로 이거는 좋다고 생각합니다. 그런데 얼마나 엄격하게 관리하냐면, 원래 듀얼 모니터를 사용해서 꺼둔 상태로 노트북만 사용했는데, 옷이나 수건으로 모니터를 덮어달라는 개인 공지까지 왔습니다. 대단하다 네이버..(따봉) 2. 문제 총 4문제가 출제되었습니다. 네이버는 문제 유출을 엄격히 제한하고..
HttpServletRequest 서블릿은 개발자가 HTTP요청 메시지를 편리하게 사용할 수 있도록, 메시지를 파싱하고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. HttpServletRequest는 start-line 정보, 헤더 정보, 기타 정보 등의 정보를 기본으로 제공한다. 또한 HTTP 요청 데이터를 조회하는 기능도 제공한다. HttpServletRequest가 어떻게 요청 데이터를 조회하는지 알아보자. HTTP 요청 데이터 HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달할때는 주로 다음과 같은 3가지 방법을 사용한다. GET - 쿼리 파라미터 사용 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함..

HTTP 개요 1999년에 나온 HTTP표준인 RFC2616이 폐기되고 2014년에 RFC7230~7235가 등장하였다. 그에 따라 이전에 엔티티(Entity)라 칭했던 내용들이 표현(Representation)으로 변경되었다. 표현은 표현 메타데이터와 표현 데이터를 합친 것이다. 표현 데이터는 메시지 본문(message body)를 통해 표현 데이터를 전달한다. 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다. 표현 헤더 표현데이터를 해석할 수 있는 정보를 제공하는 표현 헤더는 여러 종류의 정보를 담을 수 있다. Content-Type: 미디어 타입, 문자 인코딩 등 표현 데이터의 형식을 설명한다. ex) text/html;charset=UTF-8, application/json, image..

웹 서버, 웹 애플리케이션 서버 웹 - HTTP 기반 HTTP 메시지에 모든 것을 전송한다. (HTML,TEXT,이미지,음성,파일,API…) 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용한다. 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적 HTML, CSS, JS, 이미지, 영상 ex) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함+ (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC ex) 톰캣(Tomcat) Jetty, Undertow 웹 서버, 웹 애플..

이번 포스팅에서는 예외를 추상화하여, 서비스 계층에서 특정 구현 기술에 의존하지 않고 서비스 계층을 순수하게 유지하는 방법에 대해 설명하겠다. 예외를 추상화하는 방법에 대해 알아보려면 우선 자바 예외에 대해 잘 이해하고 있어야 한다. 자바 예외의 이해 예외 계층 -우선 최상위 에러인 Throwable이 있고 이는 Exception과 Error로 나뉜다. -Error는 시스템 오류와 같은 애플리케이션에서 복구 불가능한 시스템 예외이기 때문에 개발자는 이를 잡으려 해서 안된다. -Exception은 체크예외와 언체크예외로 나뉜다. 체크 예외는 컴파일러가 체크하는 예외고 언체크 예외는 컴파일러가 체크하지 않으며, 런타임 오류라고도 부른다. 이 둘의 차이에 대해 자세히 알아보자. 체크 예외 체크 예외는 잡아서 ..

트랜잭션 데이터를 단순 파일에 저장하지 않고 데이터베이스에 저장하는 가장 큰 이유는 트랜잭션을 지원하기 때문이다. 정의는 다음과 같다. 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적인 단위로 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위이다. 풀어 설명하자면 트랜잭션이란 하나로 처리되야 할 여러 작업들 즉, 쪼갤 수 없는 업무 처리의 최소단위를 뜻하며 데이터베이스는 이를 하나의 작업처럼 처리할 수 있도록 지원한다. 가장 대표적인 예시로는 계좌이체가 있다. A에서 B로 송금할때 A의 계좌에서 돈이 빠져나가는 과정과 B의 계좌에 돈이 추가되는 과정은 반드시 함께 일어나야 한다. 이와 같은 상황에 트랜잭션을 적용하면 된다. 트..