[Spring MVC] 기초 요약 정리 1. @PathVariable (경로 변수) 사용 HTTP API는 리소스 경로에 식별자를 넣는 스타일 선호 /mapping/userA /users/1 @RequestMapping은 URL 경로를 템플릿화 할 수 있다. @PathVariable을 사용하면 매칭 되는 부분을 편리하게 조회할 수 있다. @PathVariable의 이름과 파라미터 이름이 같으면 생략할 수 있다. /** * PathVariable 사용 * 변수명이 같으면 생략 가능 * @PathVariable("userId") String userId -> @PathVariable userId */ @GetMapping("/mapping/{userId}") public String mappingPath(@PathVariable("userId").. Spring 스터디 2022.09.10 1 [네트워크] 네트워크 계층 - 데이터 평면 이번 포스팅에서 배울 내용 데이터 평면 네트워크 계층에서의 데이터 평면이 어떠한 기능을 하는지 다룬다. 퍼 라우터라는 네트워크 계층의 기능은 한 라우터의 입력 링크에 도착한 데이터그램이 그 라우터의 출력 링크에 어떻게 도착하는지 결정한다. 전통적인 IP 포워딩 일반화된 포워딩 IPv4, IPv6 프로토콜들과 어드레싱 네트워크 전체 흐름 1. 네트워크 계층의 일 네트워크 계층은 링크를 타고 호스트 H1과 호스트 H2가 통신 할 수 있게 해줍니다. 이 때 네트워크 계층에서 나온 네트워크 패킷을 데이터그램이라 합니다. 전송계층에서 나온 세그먼트에서 IP 헤더가 붙은 상태입니다. IP 헤더를 가지고 있음으로서 상대 호스트 H2의 목적지가 어디인지 판단할 수 있습니다. 2. IP 주소를 어떻게 이용할까 ? 하지만.. 네트워크 2022.09.07 0 [Spring JPA Basic] 스프링 JPA 기초 간단 요약 1. 권장하는 식별자 전략 SEQUENCE, IDENTITY, 랜덤(복합)키를 사용하는게 좋습니다. 권장 : Long형 + 대체키 + 키 생성 전략 사용 1-1. IDENTITY 생성 전략 특징 MySQL, PostgreSQL, SQL Server, DB2 에서 사용 생성하면 영속성 컨텍스트의 PK값으로 쓰게 된다. IDENTITY 전략은 em.persist() 시점에 즉시 INSERT SQL 실행하고 DB에서 식별자를 조회합니다. 1-2. SEQUENCE 생성 전략 특징 DB에서 값을 얻어와서 Member에 값을 넣어준 후에 commit한다. 1-3. allocationSize (성능 최적화) 미리 메모리에 올려놓는다. 시퀀스 한 번 호출에 증가하는 수 2. 연관관계의 주인 객체의 양방향 관계는 참조가.. Spring 스터디 2022.09.07 1 [백준 with Java] 11559번 : Puyo Puyo - 시뮬레이션 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 문제 문제 접근 주어진 각 색깔 뿌요들의 상하좌우를 봤을 때 연결되어 있는게 각 4개 이상이면 동시에 터진다. 이후 뿌요 아래 빈칸 없이 다 내려온다. 이것을 반복하면 되는 문제로 문제 해석은 어렵지 않았습니다. 다만 조건과 빈 칸 없이 내려오기 위해서는 없어진 뿌요들을 기록해놔야 함이 번거로운 작업일 거 같았습니다. 시간 복잡도 가로 6 세로 12 사이즈의 2차원 배열을 완전탐색해야 원하는 정답을 구할 수 있습니다. 72칸에 최대 뿌요가.. 백준 2022.08.11 0 [Web] 서블릿 필터 - 서블릿 실행 전, 후에 특별한 작업 수행하기 (javax.servlet.Filter) 개요 필터라고 많이 들어보시지 않았나요 ? 서블릿 필터는 서블릿 실행 전후에 어떤 특별한 작업을 하고자 할 때 사용합니다. 예를 들어보겠습니다. 저희가 서블릿을 직접 구현 했을 때 한글 인코딩을 위해서 setCharacterEncoding(”UTF-8”) 을 계속해서 집어넣어 줬습니다. 이 작업을 getParameter()로 데이터를 꺼내기 전에 실행시켜 줬습니다. “데이터를 꺼내기 전" 이라는 시점에 “인코딩"이라는 특별한 작업을 해야하는 상황입니다. 저희는 이를 대신해줄 필터를 만들어서 설정하겠습니다. 요약하자면 Filter 인터페이스를 구현하고 DD파일이나 애노테이션으로 설정해두면 됩니다. Filter 인터페이스 구현체 만들기 먼저 javax.servlet.Filter 인터페이스를 구현합니다. 필터.. Web 스터디 2022.08.11 0 [Web] 서블릿 초기화 매개변수와 컨텍스트 초기화 매개변수 개요 서블릿 초기화 매개변수와 컨텍스트 초기화 매개변수가 뭔지 아시나요 ? 서블릿 초기화 매개변수는 서블릿을 생성하고 초기화할 때 [Init()를 초기화할 때] 서블릿 컨테이너가 전달하는 데이터입니다. 예를 들어보겠습니다. 데이터베이스 A, 데이터베이스 B가 있습니다. 10개가 있을 때 서블릿 모두 데이터베이스 A에서 데이터를 꺼내와야 합니다. 다른 웹에서는 데이터베이스 A와 B를 각 2개의 서블릿이 꺼내려고 합니다. 이 때 서블릿 초기화 매개변수는 특정 서블릿에서 사용할 정보로 사용하고 컨텍스트 초기화 매개변수는 여러 서블릿에서 공통으로 사용할 정보일 때 사용합니다. 그렇다면 데이터베이스 A만을 사용하는 웹에는 컨텍스트 초기화 매개변수를 이용하고 데이터베이스 A, B를 각각 2개의 서블릿에서 사용하는 .. Web 스터디 2022.08.11 0 [백준 with JAVA] 1149번 : RGB 거리 - DP 1149번: RGB거리 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 문제 접근 문제 조건을 보면 결국 i번째 집이 있다고 했을 때 color[i - 1] ≠ color[i] && color[i] ≠ color[i + 1] 이 성립하면 되는 문제입니다. 조건만 봐도 바로 점화식이 나와버리는 문제였습니다. 한 가지 더 생각을 하자면 마지막 선택한 집이 Red 일 경우 Green 일 경우 Blue 일 경우 로 3가지 구분 지어서 점화식을 만든 후에 마지막에 비교해주시면 되겠습니다. 나.. 동적계획법 2022.08.09 0 [백준 with JAVA] 2579번 : 계단오르기 - DP 2579번: 계단 오르기 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 보기 DP 문제이기에 이 문제를 어떻게 세부 문제로 나눠서 점화식을 세울까 고민했습니다. 개인적으로 점화식을 세워서 문제를 맞추는데 성공했지만 다른 분들과 코드를 비교했을 때 내용이 달라 제 코드와 다른 분들의 코드를 비교해서 포스팅 하겠습니다. 1. 내 문제 접근법 문제를 보면 다음과 같은 조건들이 있습니다. 연속해서 세 칸을 올라가지 못한다. 저는 이 조건을 보고 계단에서 일정한 규칙으로 움직여야 함을 알 수 있었습니다. 한 칸 올라감을 1.. 동적계획법 2022.08.09 0 Servlet과 JDBC 개요 전에 배운 서블릿 (Servlet)을 이용해서 클라이언트가 요청한 데이터를 다뤄보려고 합니다. 아주 기초적인 부분이고 너무 쉬운 구간입니다. 하지만 이러한 기반이 잘 잡혀 계속 생각을 하고 있어야 나중에 성장하는데 무리가 없음에 분명합니다. Servlet에 JDBC를 이용한 JSP 프로그래밍 프로젝트를 여러번 해왔지만 프로젝트를 완성 시키는게 목표가 아닌 기초적인 “웹"을 공부하는데에 목표를 두겠습니다. 서블릿이 하던 일 서블릿이 무슨 일을 했었을까요? HTTP 프로토콜을 준수하며 클라이언트-서버가 통신하기 위한 일정한 규칙을 구현하는데에 편리함을 주는 역할이었습니다. 간단하게 말하면 클라이언트가 요청한 데이터를 다루는 일을 해줍니다. 저희는 이러한 서블릿을 가지고 데이터베이스에 접근할 수 있도록 .. Web 스터디 2022.08.08 0 [네트워크] 애플리케이션 계층 3 - DNS, TLD, Authoritative, DNS 캐싱, DNS 레코드, DNS 계층화 DNS 란? DNS(Domain Name System)는 어떠한 호스트에 대한 하나의 식별자 입니다. IP 주소도 호스트에 대한 하나의 식별자 입니다. DNS는 사람이 읽기 편하게 되어 있지만 IP 주소는 그렇지 않습니다. 결국 해당 호스트 네임으로 매핑되는 IP 주소를 가져올 수 있습니다. 즉, DNS는 호스트 네임을 IP주소로 변환해주는 서비스입니다. 호스트 & 도메인 하나의 도메인이 있다면 하나의 도메인에 여러 개의 호스트를 등록할 수 있습니다. 그 호스트는 IP와 매칭이 됩니다. mail.naver.com이 있다면 호스트 : 네트워크에 연결된 하나의 장치 호스트 네임 : 각 네트워크 장치(컴퓨터)에 할당된 이름 mail 도메인 네임 : 네트워크에 부여된 이름 naver.com mail.naver... 네트워크 2022.08.08 0 [백준] 1915번 : 가장 큰 정사각형 - DP 1915번: 가장 큰 정사각형 1915번: 가장 큰 정사각형 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. www.acmicpc.net 너 DP 좀 치냐 ? 이번 문제는 DP 문제입니다. 문제 n×m의 0, 1로 된 배열이 있다. 이 배열에서 1로 된 가장 큰 정사각형의 크기를 구하는 프로그램을 작성하시오. 0100 0111 1110 0010 위와 같은 예제에서는 가운데의 2×2 배열이 가장 큰 정사각형이다. 문제 접근 배열을 순차적으로 돈다고 했을 때 이미 정사각형을 구한 부분도 다시 구하게 된다는 사실은 당연히 알 수 있습니다. 때문에 이 부분을 방지할 수 있는 방법이 필요합니다. 처음에 저는 한 좌표에서 right, rightDo.. 동적계획법 2022.08.06 0 [백준] 3176번 : 도로 네트워크 - LCA 3176번: 도로 네트워크 첫째 줄에 N이 주어진다. (2 ≤ N ≤ 100,000) 다음 N-1개 줄에는 도로를 나타내는 세 정수 A, B, C가 주어진다. A와 B사이에 길이가 C인 도로가 있다는 뜻이다. 도로의 길이는 1,000,000보다 작거나 같은 양 www.acmicpc.net 문제 N개의 도시와 그 도시를 연결하는 N-1개의 도로로 이루어진 도로 네트워크가 있다. 모든 도시의 쌍에는 그 도시를 연결하는 유일한 경로가 있고, 각 도로의 길이는 입력으로 주어진다. 총 K개의 도시 쌍이 주어진다. 이때, 두 도시를 연결하는 경로 상에서 가장 짧은 도로의 길이와 가장 긴 도로의 길이를 구하는 프로그램을 작성하시오. 문제 예측 문제를 보면 도로가 N - 1개로 유일한 간선에 사이클이 없음을 알 수 있.. 최소공통조상 2022.08.05 0 [네트워크] 애플리케이션 계층 2 - SMTP, Socket Programming(Network Programming) SMTP (Simple Mail Transfer Protocol) user agent : 메일을 작성, 읽기 수행 mail server : 24시간 대체 서버 (ex; Gmail mail server) email message를 갖고 있다 server에 저장되어 있는 메세지를 가져온다. message queue에는 나갈 email들을 가지고 있다. 메일을 받는 서버를 server 메일을 보내는 서버를 client가 된다. yahoo → yahoo-mail-server → google-mail-server → google SMTP Mail Server 간 주고받을 때 사용하는 Protocol SMTP 과정 (메일 보내는 과정) Alice → Alice’s mail-server → Bob’s mail-ser.. 네트워크 2022.08.02 0 [네트워크] 애플리케이션 계층 1 - TCP, UDP, HTTP, Pipeline, Web Cache, Proxy Server, Conditional GET Network 네트워크는 프로그램이라고 할 수 있습니다. 다른 프로그램과의 차이점이 있다면 “통신 기능"이 하나 더 있다는 것입니다. IP & Port Client 측 프로세스가 Server 측 프로세스에게 메시지를 전달하기 위해서는 해당 Server를 가리키는 IP address와 해당하는 프로세스의 주소인 port가 필요합니다. IP address IP address는 네트워크 상에 존재하는 특정 머신을 지칭하기 위한 주소를 의미합니다. Port IP가 특정 머신을 지칭한다면 Port는 머신 내 원하는 프로세스의 주소를 의미합니다. 네트워크가 제공해주는 통신 기능 Data Integrity : TCP를 통해서 신뢰성 있는 데이터만 제공해줍니다. 네트워크 비제공 기능 Timing ThroughPut S.. 네트워크 2022.08.02 0 [백준] 1922번 : 네트워크 연결 - Kruskal Algorithm https://www.acmicpc.net/problem/1922 1922번: 네트워크 연결 이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다. www.acmicpc.net 문제 도현이는 컴퓨터와 컴퓨터를 모두 연결하는 네트워크를 구축하려 한다. 하지만 아쉽게도 허브가 있지 않아 컴퓨터와 컴퓨터를 직접 연결하여야 한다. 그런데 모두가 자료를 공유하기 위해서는 모든 컴퓨터가 연결이 되어 있어야 한다. (a와 b가 연결이 되어 있다는 말은 a에서 b로의 경로가 존재한다는 것을 의미한다. a에서 b를 연결하는 선이 있고, b와 c를 연결하는 선이 있으면 a와 c는 연결이 되어 있다.) 그런데 이왕이면 컴퓨터를 연결하는 비용을 최소로 하여야 컴퓨터를 연결하는 비용.. 최소신장트리 2022.08.01 0 반응형