분류 전체보기 95

[Spring boot] FrontController, RequestDispatcher, DispatchServlet

FrontController - 최초 앞단에서 request를 받아서 필요한 클래스에 넘겨준다. - 이 때 새로운 요청이 생기기 때문에 reuqest와 response가 새롭게 new 될 수 있다. - request와 response가 새로 생기면 요청한 페이지로 넘어갈 때 데이터를 가지고 갈 수 없다. RequestDispatcher - a페이지에서 b페이지로 넘어갈 때, a페이지에서 가지고 있던 데이터를 가지고 넘어갈 수 있음 - 페이지가 넘어갈 때 request가 다시 생성되지 않고 a페이지에서 생성된 request를 재사용함 Dispatchservlet - 스프링에 이미 있는 기능으로 FrontController + RequestDispatcher 합쳐진 기능을 가지고 있다.

[Spring boot] web.xml

web.xml의 역할 1. Servletcontext의 초기 파라미터 생성 2. Session의 유효시간 설정 3. Servlet/JSP에 대한 정의 4. Servlet/JSP 매핑 5. Mime Type 매핑 6. Welcome File list 설정 7. Error Pages 처리 8. 리스너/필터 설정 9. 보안 설정 성이 있다고 가정해보자 web.xml은 문지기라고 한다. 1. Servletcontext의 초기 파라미터 생성 - 초기 파라미터는 '암구호'라고 생각한다 - 문으로 들어온 사람은 암구호를 알겠지만 벽을 넘어온 사람은 모른다. 2. Session의 유효시간 설정 - 인증을 하고 성에 있을 수 있는 시간을 정해주고 들여보내 주는 것 - 정해진 시간이 지나면 추방당함 - 세션을 초기화하려면..

[CS 지식] 이해하기 쉬운 URL, URI

URL (Uniform Resource Locator) ex) http://www.internet.com/a.png -> 자원의 위치를 나타냄 앞에 https, http 등이 있어야 URL에 해당된다. URI (Uniform Resource Identifier) ex) http://www.internet.com/a -> 자원 자체를 식별하는 고유한 문자가 옴 internet.com는 URL이 아닌 URI가 된다. URL은 URI의 일종으로 URL도 URL로 부를 수 있다. Path - URN Host + Path - URI Scheme + Host + Path - URI, URL 위와 같이 나눠 부를 수 있다.

CS지식 쌓기 2024.02.14

[Spring boot]Socket(소켓), http통신, 웹서버, 톰켓 쉽게 이해하기

Socket(소켓) : 운영체제가 가지고 있는 것 소켓통신 A와 B가 채팅을 하려고 한다. A가 5000번 소켓을 오픈한다. -> 5000번은 연결용도의 소켓이다. B와 연결이 되면 5000번은 닫히고 예를들어 5001번 소켓으로 연결되어 채팅를 한다. 5001번을 만들 때는 새로운 스레드를 만듬 5000번 - 메인스레드로 연결만 해주는 기능 소켓통신의 장점 연결이 끊어지지 않지만 부하가 크다. 스레드를 이용하면 time slice를 통해서 동시동작 처럼 보이게 시간을 쪼개서 동작시킬 수 있다. http통신 - 문서를 전달하는 통신 - http 확장자로 만들어진 문서를 필요한 사람에게 제공 - statless 방식 사용 - 한 소켓으로 명령을 수행하고 끊어버림 - 전에 통신했던 사람인지 인식하지 못함 웹..

[JPA] ORM

ORM (Object Relational Mapping) 자바와 DB의 데이터 타입이 다름 자바는 보통 vo에 데이터에 있는 데이터를 자바에 '모델링' 한다고 함 어플리케이션과 데이터베이스 연결 시 SQL 언어가 아닌 어플리케이션 개발 언어로 데이터베이스를 접근할 수 있게 해주는 툴 데이터 전송 및 받는 과정 자바에서 데이터 베이스에 연결 요청을 해서 승인을 받으면 세션을 열어줌 자바는 커넥터로 쿼리 전송 쿼리를 돌린 데이터 베이스는 데이터 타입을 자바로 보내줌 자바가 알아볼 수 있는 데이터 타입으로 바꿔주는 것 까지의 모든 과정을 JPA를 사용하면 단순한 함수로 처리해줌

자바 버전 바꿨는데 실제로는 안바꼈을 때

공부 하다가 이 전 프로젝트를 돌려보려 실행했는데 자바버전이 달랐다. 그 프로젝트에서 사용한 버전의 자바로 교체했는데 실제로는 바뀌지 않았다. 환경변수도 확인하고, 세팅했던 것들을 삭제하고 생성도 해보고, 시도해본 여러가지 방법 중 해결된 방법을 작성한다. C:\Program Files\Common Files\Oracle\Java\javapath 필자의 경우 해당 경로에 파일이 있었다. 해당 폴더 안에 .exe파일로 java javaw javaws 이름의 파일을 삭제하니 정상적으로 버전이 바뀐 것을 확인했다.

그 외 개념,팁 2024.01.23

자바문법 및 개념 노트

String (문자 비교시 ) [표현법] 문자열.equal(문자열); EX) str.equals("exit") 문자열의 길이 str.length() 누적합 공식 int sum = 0; sum += sum +i 랜덤값 공식 EX) int random = (int)(Math.random()*100+1) 1은 시작값, 100은 랜덤값 범위 return; // 메소드 밖을 빠져나가는 구문 중복제거 ?? 출력.. apple => a p p l e boolean flag = true; 사용 중복 for문에는 flag = false;로 출력 안되게 하기 배열 복사 null로 하나 더 선언 ( ex) String[] copy = null; Arrays.copyOf(원본배열명, 배열크기 버블정렬 첫번째부터 두개씩 비교해..

nextInt() 함수 주의사항

스캐너의 nextInt() 함수는 int를 입력받을 때 사용된다. 하지만 nextInt()끼리는 여러개를 입력 받을 수 있지만, 그 다음 문자를 입력받아 nextLine()를 바로 사용하면 오류가 뜬다. 다른 오류가 뜰 수도 있지만 NumberFormatException 같은 오류가 뜬다. nextInt()를 사용한 후에 다른 함수를 사용할 때에는 nextLine()을 한 번 사용하여 개행해준 후 진행하면 된다.

Github(깃허브) README(리드미) 작성 문법 모음

리드미 작성하면서 사용했던 문법 정리해보았다. 깃허브 리드미 만들기 1. 이미지 링크로띄우기 ![header](https://링크주소) 2. 글씨 크기별 (# 1개가 제일 큼) # 가나다라 ## 가나다라 ### 가나다라 #### 가나다라 ##### 가나다라 ###### 가나다라 3. 목록 기호 만들어줌 * ㅁㄴㄻㄴㄹ + ㅁㅇㅁㅇ - ㅇㅁㄴ 4. 가로 줄을 만들어 공간을 분리해줌 *** ``` === --- 5. 들여쓰기 > ㅁㄴㅇㄻㄴㄹㅁㄴㅇ 6. 목록기호 번호 1. ㅁㅁ 2. ㅁㅁㅁ 3. ㅁㅁㅁㅁ 6. 링크 걸기 [Google](https://google.com) [googlelink]: https://google.com "Go google" 외부링크:

그 외 개념,팁 2024.01.18