
response 는 Data(MessageConverter) 와 HTML(ViewResolover) 가 있다. ViewResolver html파일을 응답할지 Data를 응답할지 결정해야 하는데 html 파일(우리가 쓰는건 jsp파일)을 응답하게 되면 ViewResolver가 관여하게 된다. 예를들어 설명하자면 DispatcherServlet이 컴포넌트를 스캔하다 A라는 클래스가 떴다. A 클래스는 hello() 라는 함수가 있다. hello()함수는 String "hello" 를 리턴한다. 이제 요청한 쪽으로 "hello"라는 메시지가 reponse 될것이다. 근데 "hello"라는 메시지가 아니라 hello 라는 파일을 받고 싶으면 어떡해? 이때 ViewResolver가 관여를 하여 hello의 앞에 ..

ApplicationContext DispatchServlet이 컴포넌트(src 폴더)를 스캔할 때 수 많은 객체들이 ApplicationContext에 등록된다. 이것을 IoC 라고 한다. 개발자가 직접 new 를 통해 객체를 생성하게 되면 해당 객체를 가르키는 레퍼런스 변수를 관리하기 어렵다. 따라서 (특정 어노테이션을 붙여서) 스프링이 직접 해당 객체를 관리한다. 이때 우리는 주소를 몰라도 된다. 왜냐하면 필요할 때 DI하면 되기 때문이다. 이제 필요한 곳에서 ApplicationContext에 접근하여 필요한 객체를 가져올 수 있다. ApplicationContext는 싱글톤으로 관리되므로 어디에서 접근하든 동일한 객체임을 보장한다. ApplicationContext의 종류는 2가지이다. serv..

FrontController 패턴 이전 포스트에서 작성한 web.xml의 Servlet/JSP 정의 및 매핑처리에 있어서 너무 많은 처리를 하게 되는것을 막기위해 Request 요청을 FrontController에 넘겨준다. 먼저, 특정 주소가(ex) .do) 들어오면 FrontController로 보내기로 약속한다. 웹서버에 들어오는 요청이 URI 나 Java파일이라면 바로 자원에 접근하지 못한다. 따라서 톰켓으로 보낸다. 톰켓으로 오는 순간 request 객체와 response 객체가 자동으로 생성된다. request 객체에는 요청한 사람의 정보가 담긴다. 이전포스트 (https://laugh4mile.tistory.com/177) 에서 설명했듯이 통신이 들어올때 맨 처음은 BufferedWriter..

web.xml 웹서버에 진입시 최초로 진행하는것이 web.xml 이다. 성주가 문지기에게 주는 행동 지침서 같은 개념이다. 외부인 A가 성에 들어온다고 생각하자. ServletContext의 초기 파라미터 생성 : 암구호. 한번 설정해 놓으면 어디에서든 동작할 수 있다. A는 정상적인 루트로 들어왔을 경우 암구호를 알고 있을것이고 이 암구호는 성 내부 어디에서든 물어볼 수 있다. 하지만 A가 만약 비정상적인 경로로 들어왔을 경우 암구호를 모를것이고 추방당할 것이다. Session의 유효시간 설정 : A가 성에 있을 수 있는 시간. 만약 유효시간이 끝나면 추방당한다. Servlet/JSP에 대한 정의 & Servlet/JSP 매핑 : 외부인이 문지기에게 목적지(정의)를 말하면 문지기는 목적지까지의 길을 알..

먼저 소켓 Socket 통신에 대해 알아야 한다. Socket은 운영체제가 가지고 있다. 소켓통신과정 A와 B가 통신을 하고 싶다? A의 Socket이 오픈 된다. 오픈한 소켓은 포트번호가 빌요하다. 예를 들어 5000이라고 하자. 이제 5000번 포트는 연결을 위한 소켓이 존재하게된다. B는 ip주소와 포트번호(5000번)를 통해 A에 접속한다. 이제 A와 B는 메시지를 주고받을 수 있다. 하지만 이렇게 되면 C라는 애가 A와 통신을 하고 싶어도 못하게된다. 이미 5000번 포트로 B와 A가 짝짝꿍 중이기 때문이다. 따라서 위처럼 만들면안됨. 다시 처음부터.. 최초의 5000번 포트는 연결을 위한 포트로만 사용한다. 5000번 포트와 연결이 되는 순간 새로운 소켓을 오픈한다. 이때 생성되는 포트 번호는..

JPA 란? JPA : Java Persistence API Persistence : 영속성. 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성. 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 구현한다. Ram 은 휘발성. PC 끄면(or 꺼지면) 사라진다. 따라서 비휘발성이 되기 위해선 하드디스크에 기록해야 하는데 그 역할을 DBMS에서 한다. API Application : 프로그램 Programming : 프로그래밍 Interface : 인터페이스 cf) 프로토콜 vs 인터페이스 인터페이스 : 무조건 지켜야하는 약속. 상하관계가 존재함. 프로토콜 : 서로 동등한 약속. 즉, JPA 란 Java 프로그래밍을 할때 영구적으로 데이터를 저장하기 위해 필요..

Spring 이란? Spring은 Framework 이다. frame은 틀, work는 일. 틀 안에서 동작하다 라고 생각하자. Spring은 오픈소스(=무료)이다. 따라서 소스코드가 공개되어있기 때문에 불편한 부분을 고쳐서 기여(Contribute)할 수 있다. Spring은 IoC 컨테이너를 가진다. IoC는 Spring의 핵심이다. IoC (Inversion of Contoroll) 를 해석하면 "제어의 역전" 이며 주도권이 Spring 한테 있다는것을 말한다. Class : 설계도 Object : 실체화가 가능한 것 Instance : 실체화 된 것 이전에는 개발자가 직접 객체의 주소를 관리했어야 하지만 이제부터는 Spring이 스캔을 해서 객체들을 메모리에 띄워놓았기 때문에 개발자가 관리하는것이..

Vue프로젝트를 생성해 보자 프로젝트>src에서 VSCode를 실행한다. Vue 프로젝트를 생성할 것이다. 먼저 Terminal을 연다. vue -V 로 버전을 확인한다. 기존에 Vue-CLI 가 설치되어 있기 때문에 @vue/cli 4.5.11 이 나온다. 처음 설치를 한다면 먼저 터미널에 npm install -g @vue/cli 를 입력하여 vue cli를 설치해야한다. 참고로 Vue-CLI를 사용하기 위해서는 먼저 node.js가 설치되어 있어야한다. vue create frontend 입력 -> frontend 라는 vue 프로젝트를 생성한다. Manually select features 를 선택한다. 처음에 나오는 선택지는 다음과 같다. Babel : ES6(ES2015) 이상 버전이나 typ..
- Total
- Today
- Yesterday
- S3
- BFS
- Spring
- 구현
- 시뮬레이션
- PriorityQueue
- Spring Boot
- SWEA
- 백준
- 그리디
- G5
- 우선순위큐
- 알고리즘
- 리액트
- react native
- DFS
- react
- 리액트 네이티브
- 문자열
- map
- 코딩새내기
- S2
- 자바
- laugh4mile
- 백트래킹
- 객체지향
- g4
- 현꾸라지
- java
- 다익스트라
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |