[Spring Boot] Embedded Redis 추가하기 (Mac 해결책)
·
Backend/Spring
개요친구랑 작은 토이프로젝트를 기획하면서, Redis 를 사용할 일이 생겼다. 일단 Redis 환경을 어떻게 구성할지에 대해 고민했다. 1. AWS 환경에서 사용2. 로컬에서 Docker 환경으로 구성3. 로컬에서 Docker 없이 직접 설치 일단 토이 프로젝트이고, 친구와 굳이 'Redis만을 위해' 배포를 할 필요성을 느끼지 못했기 때문에 1은 기각.로컬에서 사용하는 것에 대해 고민하다가 친구가 'Embedded Redis'라는 것을 찾아왔다. Embedded Redis란?애플리케이션 내부에서 내장형 Redis 서버를 실행할 수 있도록 도와주는 방식이다.보통 테스트환경에서 Redis를 별도로 설치하지 않고 애플리케이션과 함께 실행하고 싶을 때 사용한다. Embedded Redis 의 장점은 다음과 ..
[프로그래머스/level 3] 코딩 테스트 공부 - 118668 (Java)
·
코딩 테스트 정복기/프로그래머스
[level 3] 코딩 테스트 공부 - 118668문제 링크 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이DP를 이용해 해당 문제를 해결할 수 있다.먼저 가능한 선택지는 3가지 이다. 1시간을 사용, `alp` 1 늘리기1시간을 사용, `cop` 1 늘리기문제를 해결하여 주어진 `cost`를 사용, `alp_rwd`, `cop_rwd` 만큼 늘리기row를 `alp`, col을 `cop`으로 두고 `[alp][cop]`에 시간(`cost`)을 저장하여 DP를 수행한다.각 [알고력, 코딩력]에 도달하기 위한 경우의 수 중 cost가 가장 적은 것을 선택한다.현재 `[alp][cop]`에서 1시간을 ..
[프로그래머스/level 3] 파괴되지 않은 건물 - 92344 (+누적합, Java)
·
코딩 테스트 정복기/프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr[level 3] 파괴되지 않은 건물 - 92344 풀이해당 문제는 누적합으로 해결한다. (r1, c1)에서 (r2, c2)까지 n을 더할 때, 문제처럼 해당 과정이 k만큼 수행되어야 한다면for문으로 작업 시 r*c*k 만큼 수행해야한다. 이는 효율적이지 않다.때문에, 주어진 r1, c1, r2, c2를 이용하여 더하는 구간을 표시하고 이를 더하는 누적합을 수행한다. 아래 이차원 배열에서 (0, 0) 부터 (3,3) 까지 5를 더한다고 하자..
URI와 웹 브라우저 요청 흐름
·
Computer Science/Network
URI(Uniform Resource Identifier)URI란?URI란 인터넷에서 자원을 식별하기 위한 문자열을 의미한다.웹 상의 특정 자원(파일, 페이지, API 등)을 식별하거나 위치를 지정하는 방식이다.URI는 URL과 URN을 포함한다.URL: 리소스가 있는 위치(Locator)를 지정URN: 리소스에 이름(Name)을 부여  URI 구성 요소 schema://[userinfo@]host[:port][/path][?query][#fragment]  https://www.google.com:443/search?q=hello&hl=ko  - schema주로 프로토콜을 정의. 어떤 방식으로 자원에 접근할 것인가 - userinfoURL에 사용자 정보를 포함해서 인증해야될 때 사용. (거의 사용 안함..
포트(PORT)와 DNS
·
Computer Science/Network
PORT 클라이언트에서 게임도 하고 화상통화도 하고 웹 브라우저도 사용하고 있다면 여러개의 서버랑 통신해야한다.클라이언트 IP에서 온 패킷이 게임/화상통화/웹 브라우저 중 어디에서 온 패킷인지 구별하려면?  PORT는 프로그램(컴퓨터 네트워크 프로세스) 간 통신을 구분하기 위한 논리적 번호이다.IP 주소와 함께 사용되고, 하나의 장치에서 여러 어플리케이션이 동시에 작동할 수 있도록 돕는다. 즉, IP는 목적지 서버를 찾는 용도이고, 서버 안에서 돌아가는 애플리케이션을 구분하는게 PORT이다.  DNS(Domain Name System)DNS란 도메인 이름을 IP 주소로 변환해주는 시스템이다.예: `www.google.com` → `200.200.200.2` 도메인을 사용하는 이유는?- 사람들이 IP주소(..
TCP/UDP
·
Computer Science/Network
TCP / UDP란?TCP/UDP는 OSI 7 계층 모델의 전송계층에서 동작하는 프로토콜.IP와 함께 사용되어 데이터를 송수신한다.둘의 주된 차이는 데이터 전송 방식과 신뢰성이다.  TCP(전송 제어 프로토콜, Transmission Control Protocol)의 특징1. 연결지향 : 3 way HandsahkeTCP의 논리적 연결 과정을 말한다. * SYN : 접속 요청 / ACK : 요청 수락(ACK와 함께 데이터 전송 가능)1. 클라이언트가 서버에게 접속을 요청함.2. 서버가 클라이언트의 요청을 수락하고, 클라이언트에게 접속을 요청함.3. 클라이언트가 서버의 요청을 수락함.  2. 신뢰성 : 순서 보장먼저, TCP 프로토콜을 이용한 메시지 전달 과정을 살펴보자.1. HTTP: 프로그램이 메시지 ..
IP(인터넷 프로토콜)
·
Computer Science/Network
IP(인터넷 프로토콜, Internet Protocol) 란?IP는 인터넷에서 데이터를 송수신하기 위한 기본 프로토콜.네트워크 상의 장치들이 서로 데이터를 교환할 수 있도록 규칙과 구조를 정의한다.OSI 7 계층 모델의 네트워크 계층에 속한다. 역할지정된 IP 주소로 데이터를 전달.패킷 단위로 데이터를 전달.네트워크 계층에서 host의 주소 지정과 패킷 분할/조립을 담당. 패킷 전달 과정1. 패킷 구성하기출발지 IP와 목적지 IP, 전송 데이터 등을 담은 패킷을 구성한다.이는 IP 프로토콜에 의해 서버들이 규약을 따르고 있다. 2. 클라이언트 패킷 전달패킷을 통해 인터넷 망에서 노드들이 출발지/목적지를 확인하고 목적지 IP(200.200.200.2)까지 전달한다. 3. 서버 패킷 전달서버도 마찬가지로 새..
[코딩테스트 합격자 되기(Java)] 문제 69. 조약돌 문제★ ★ ★
·
코딩 테스트 정복기/기타
문제3열 N행의 가중치가 있는 배열 arr이 주어집니다.이 배열에 다음 규칙을 준수하면서 조약돌을 놓을 때 최대 가중치의 합을 반환하는 Solution() 함수를 구현하세요. 제약조건• 각 열에 조약돌은 적어도 하나는 놓아야 합니다.• 각 조약돌에 바로 인접한 위치에 조약돌을 놓을 수 없습니다.- 인접 기준은 상하좌우입니다. 입출력의 예arrreturn[ [ 1, 3, 3, 2 ], [ 2, 1, 4, 1 ], [ 1, 5, 2, 3 ] ]19[ [ 2, 7, 13, 2, 6 ], [ 2, -4, 2, 5, 4 ], [ 5, 3, 5, -3, 1 ] ]32   풀이 및 코드3열 N행에서 각 열에 조약돌을 놓는 방법은 다음과 같다.예) 1행에서1. 1열에 두는 방법이전 행에서 2열이나 3열을 선택했을 때 ..
[백준/Gold V] 용액 - 2467 (Java)
·
코딩 테스트 정복기/백준
[Gold V] 용액 - 2467문제 링크분류이분 탐색, 두 포인터문제 설명KOI 부설 과학연구소에서는 많은 종류의 산성 용액과 알칼리성 용액을 보유하고 있다. 각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어져있다. 산성 용액의 특성값은 1부터 1,000,000,000까지의 양의 정수로 나타내고, 알칼리성 용액의 특성값은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다.같은 양의 두 용액을 혼합한 용액의 특성값은 혼합에 사용된 각 용액의 특성값의 합으로 정의한다. 이 연구소에서는 같은 양의 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들려고 한다.예를 들어, 주어진 용액들의 특성값이 [-99, -2, -1, 4, 98]인 경우에는 특성값이 -99인 용액과 특성값이 98..
[코딩테스트 합격자 되기(Java)] 문제 68. LIS길이계산하기★ ★ ★
·
코딩 테스트 정복기/기타
문제정수배열 nums에서 LIS의 길이를 찾는 함수를 작성하세요.제약조건• nums는 최대길이 1,000의 정수 배열입니다.• nums의 각 요소는 -1,000 이상 1,000 이하의 정수입니다. 입출력 예numsreturn[1, 4, 2, 3, 1, 5, 7, 3]5[3, 2, 1]1   풀이 및 코드LIS(Longest Increasing Subsequence)란?"최장 증가 부분 수열"이라고도 하며, 주어진 수열에서 엄격히 증가하는 가장 긴 부분 수열을 찾는 문제이다.부분 수열은 원래의 수열에서 원소들의 순서를 유지하면서 일부 원소들만 선택한 수열을 의미한다. 예를 들어, `[1, 4, 2, 3, 1, 5, 7, 3]` 에서 LIS는 `[1, 2, 3, 5, 7]`이다. 동적 계획법 (Dynamic..