본문 바로가기

반응형

분류 전체보기

(70)
Spring Security 테스트에서 @WithMockUser와 CSRF 이슈 해결하기 프로젝트에 처음으로 테스트 코드를 도입하면서 @WithMockUser 를 사용한 테스트에서 예상치 못한 문제를 경험했다.@WithMockUser 로 인증된 사용자로 요청을 목킹하고 있었는데, GET 요청에서는 문제없이 잘 작동하지만 POST 요청에서는 403 Forbidden 이 발생하는 것이다. @Test@WithMockUser(roles = "SELLER")@DisplayName("이름 없이 스토어 생성을 요청하면, 400 에러를 반환한다.")void test1() throws Exception { // Given CreateStoreRequest request = CreateStoreRequest.builder() .description("Test description..
[프로그래머스] [1차] 셔틀버스 문제https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 분석콘은 게으르기 때문에 가능하면 가장 늦게 버스를 타려고 한다.버스는 9:00 부터 시작해서 t분 간격으로 n번 운행 되며 버스에 탑승 가능한 인원은 m 명이다.콘을 제외한 다른 사람들이 버스를 탑승하기 위해 탑승지에 도착하는 시간이 timetable 로 주어진다.  1번 )모든 인원 4명이 9:00 전에 도착했으니 9:00 버스를 타고 남은 자리가 있어 콘이 9:00 에 도착한다면 탈수 ..
Socket 간단 정리 Socket"소켓은 간단하게 말하자면 서로 다른 기기의 프로세스 사이에서 네트워크 교환을 위한 인터페이스" 이다.  Transport, Internet, Link계층은 OS 레벨에서 구현/관리되어 Application 이 네트워크 기능을 사용할 수 있도록 지원한다.이를 지원하기 위한 인터페이스를 소켓이라고 하며, 실제 실제 운영체제에서 제공하는 네트워크 관련 시스템콜들의 집합을 Sockets API 라한다.  따라서 Socket 은 Application Layer와 Transport Layer 사이에서 네트워크 통신을 위한 통로이다. TCP 프로토콜을 사용하는 Socket : SOCK_STREAMUDP 프로토콜을 사용하는 Socket : SOCK_DGRAM 이라 한다. Socket 의 동작 과정 1. 우..
[리트코드] 51. N-Queens 문제https://leetcode.com/problems/n-queens/description/ 문제 분석n x n 크기의 판에 Queen 들을 안전하게 놓는 방법을 구하는 문제이다.Queen 은 가로, 세로, 대각선으로 공격을 한다. n = 4 일 경우는 위의 두가지 방법이 존재한다. 조건에 1  접근 방법DFS 를 활용한 완전탐색으로 문제를 해결하였다.row 당 Queen 이 하나 올 수 있기 때문에 row 를 depth 로 사용하였고 queen 을 놓을때 마다 map 에 놓을 수 없는 위치를 표시하였다.그 후 row + 1 을 하여 재귀 호출을 하였다. 코드import java.util.*;class Solution { public List> solveNQueens(int n) { ..
[응용 계층] DNS 정리 DNS (Domain Name Service / Server)DNS 역시 응용 계층의 대표적인 프로토콜이다.네트워크 통신을 위해 IP 주소와 포트 번호를 사용하는데,IP 주소의 형태는 172.158.192.123 로 총 2^32 개의 주소를 갖을 수 있다. (IPV4 기준) IP는 사람이 이해하기 어려운 형태이기 때문에 나온 것이 Domain Name 이다.DNS 는 전화번호부 처럼 Domain Name 을 IP 로 매핑 해준다. DNS 는 전세계 사람들이 사용해야 하기 때문에 성능과 안전을 위해 서비스를 분산 시켜놓고 계층화 시켜 놓았다. DNS 계층 구조Root DNS Server : 제일 상위에 존재하며 내용을 카피한 13군데 존재한다.Top-Level Domain (TLD) Server : [.c..
[응용 계층] HTTP 와 Web Cache (Proxy Server) HTTP (HyperText Transfer Protocol)HTTP 는 응용 계층의 대표적인 프로토콜이다.HyperText Transfer Protocol  의 약자로 웹 상에서 데이터를 주고 받기위해 만들어졌다. 특히 웹 브라우저와 서버 사이의 HTML 문서 및 관련 자료를 주로 전송에 사용되며 HTML 문서 만이 아닌 IMAGE, 음성, 영상, 파일, JSON 등 거의 모든 형태의 데이터 전송이 가능히다. HTTP의 특징Client - Server 구조클라이언트는 서버에 요청을 보내고 서버는 요청에 대한 응답을 만들어 클라이언트에게 보내는 구조이다.무상태 프로토콜 (Stateless)서버가 클라이언트의 상태를 유지하지 않는다. 그렇기 때문에 서버를 자유롭게 확장 가능하다. (스케일 아웃)비연결성 (..
OSI 7계층과 TCP/IP 4계층 간단 요약 OSI 7 계층OSI 7 계층은 네트워크에 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 과정을 7단계로 나눔으로써 통신 과정을 단계적으로 파악할 수 있다. 어떤 문제가 생겼을 경우 다른 계층을 건들이지 않고 문제가 발생한 계층만 접근하여 문제를 해결할 수 있다. L7 | 응용 계층 (Application Layer)사용자와 바로 연결되어 응용 서비스를 수행하는 계층이다.구글 검색이나 카카오톡, 네이버 등 응용 프로그램들이 여기에 속한다.대표적인 프로토콜 : HTTP, DNS, Telnet, FTPL6 |  표현 계층 (Presentation Layer)응용 계층에 올라갈 데이터를 표현하는 계층이다.하위 계층에서 오는 데이터를 사용자가 이해할 수 있는 형태로 만든다이 계층에서는 데이터의 인코딩, 디..
[SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/151139 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 분석 1. 대여 시작일을 기준으로 8월 부터 10월 까지 대여 횟수가 5회 이상인 자동차를 찾는다. 2. 1번의 자동차들에 대해서 월별, 자동차 ID 별 총 대여 횟수를 조회한다. 우선 1번을 위해 서브 쿼리를 작성한다. 대여 횟수를 찾기 위해서 CAR_ID 별로 그룹화하고 8월 부터 10월 사이에 대여 시작일이 있어야 한다는 조건은 WHERE 절에 횟수가 5개 이상이라는 조건은 HA..
[프로그래머스] 124 나라의 숫자 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 분석 [제한사항] n은 50,000,000이하의 자연수 입니다. 1, 2, 4 만을 사용하는 나라에서 주어진 n 을 어떻게 나타내는 지 찾는 문제이다. 제한 조건이 크기 때문에 n*2 만 되도 시간 초과가 날 것이다. 문제 접근 우선 숫자 3개로 주어진 숫자로 만들어야 하기 때문에 주어진 숫자를 3으로 나누면 어떤 규칙이 보이지 않을까? 라고 생각하고 접근하였다. 그래서 10을 3으로 ..
[프로그래머스] 구명보트 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 분석 [제한사항] 무인도에 갇힌 사람은 1명 이상 50,000명 이하입니다. 각 사람의 몸무게는 40kg 이상 240kg 이하입니다. 구명보트의 무게 제한은 40kg 이상 240kg 이하입니다. 구명보트의 무게 제한은 항상 사람들의 몸무게 중 최댓값보다 크게 주어지므로 사람들을 구출할 수 없는 경우는 없습니다. 무인도에 갇혀있는 사람들을 구하기 위해 2인용 구명보트를 최소한으로 사용하여..

반응형