목록전체 글 (82)
고딩왕 코범석

개요 Cross-Origin-Resource-Sharing의 약자로 브라우저에서 다른 출처의 리소스를 공유하는 것입니다. URL 구조 출처(Origin)란? Protocol + Host + Port = Origin 같은 출처 vs 다른 출처 Origin : https://beomseok.com 동일 출처 정책이란? 브라우저에서 api를 호출 시 CORS policy 에러가 발생할 수 있습니다. 그 이유는 동일 출처 정책을 지키기 때문에 다른 출처의 리소스 접근을 금지하기 때문입니다. 예를 들어 http://beomseok.io에서 http://beomseok-api.io라는 api 서버로 데이터를 요청한다면 동일 출처를 위반한 것이 된다. CORS 동작 원리 Simple Request 성립 조건 GET,..

문제는 여기! 안녕하세요! 이번 시간에는 백준의 미네랄 문제에 대해 풀이해보겠습니다. 항상 시뮬레이션 문제는 많은 경우의 수를 생각해야하기 때문에 푸는 도중에는 머리가 터질 것 같지만 정답 판정을 받았을 때의 기분은 상당히 짜릿합니다.시간 복잡도따위 일단 맞고보자 그럼 바로 풀이 가보시죠! 나의 풀이 전략 일단 골따리 시뮬레이션 문제들은 참으로 까다롭습니다. 제가 풀이했던 문제들이 많지는 않지만, 시뮬레이션 문제들은 가만 보면 시간 복잡도를 고려하기 보다는 문제를 어떻게 푸느냐가 제일 중요한 것 같아요. 문제에서 보면 동굴의 크기, 막대를 던진 횟수 들이 그리 크지 않습니다. 문제의 핵심은 막대기를 던진 이후 미네랄의 군집화 처리, 미네랄 클러스터들 마다 중력에 의해 바닥으로 떨어지는 것을 처리 이 두 ..

안녕하세요 이번 시간에는 데어프로그래밍 님의 jwt 강의를 듣고 공부한 내용을 정리하기 위한 포스팅입니다. 그럼 바로 시작할게요! 짚고 넘어갈 개념 Filter 시큐리티는 우선 필터체인 방식으로 동작합니다. 기존의 시큐리티 프로젝트와는 다르게 formLogin과 httpBasic을 disable합니다. 1. formLogin을 사용하지 않는 이유 form으로 로그인 하는 경우는 javascript로 서버에 id, pw를 요청합니다.. 이 때, javascript로 요청할 경우 서버에 클라이언트가 갖고 있는 쿠키를 전송하지 못하는데요. 대부분의 서버는 httpOnly값이 true로 설정되어 있기 때문이죠. 하지만 false로 허용을 한다면 javascript로 요청시 보안 상 좋지 않기 때문에 formLo..

안녕하세요! 이번 포스팅에서는 데어 프로그래밍님 유튜브에서 Security파트 강의를 듣고 학습한 내용을 포스팅하겠습니다. 항상 피드백은 환영하구 바로 시작하겠습니다! 미리 말씀드리지만 시큐리티의 구조와 동작원리는 다른 분들이 자세하게 설명하셨기에 저의 포스팅에서는 바로 적용하는 것 부터 살펴볼게요! Spring Security? 스프링 시큐리티란, 스프링 기반의 애플리케이션 보안(인증과 권한)을 담당하는 프레임워크 입니다. 시큐리티를 사용할 경우, 보안과 관련해서 체계적으로 많은 옵션들로 부터 도움을 받을 수 있습니다. 참고로 시큐리티는 filter 기반으로 동작하기에, spring mvc와 분리되어 동작합니다! 시큐리티를 설명하기 앞서 보안관련 용어부터 정리해보겠습니다. 보안관련 용어 정리 접근 주체..

안녕하세요! 이번 시간에는 따라하며 배우는 도커와 CI환경 강의를 듣고 정리한 내용들을 포스팅해보겠습니다. 그럼 잘부탁드리겠습니다! 언제나 피드백은 환영해요! Docker????? 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스로 제공하여 프로그램의 배포 및 관리를 단순하게 해줍니다. Docker의 사용 이유 어떤 프로그램 인스톨러를 다운로드 할 때, 이 인스톨러는 본인이 사용하는 pc의 os에 영향을 받습니다. 인스톨러 다운로드 사이트를 들어갈 때, 윈도우용 exe, 맥용 exe, 리눅스용 exe 으로 나눠져 있는 것 처럼요. 인스톨러를 다운 받고 실행할 때, 자신의 환경이 맞다 하더라도 분명 에러가 발생할 가능성이 있습니다. 도..

문제는 여기! 안녕하세요! 이번 시간에는 프로그래머스 고득점 kit DP파트, 난이도 Level4 문제였던 도둑질 문제를 풀이해보겠습니다. 제한사항 및 주의사항 각 집은 동그랗게 배치되어 있습니다. 인접한 두 집을 털게 되면 경보가 울립니다. 우리는 경보가 울리지 않게 집을 털어야 하고, 최대한 돈을 많이 털어야 합니다. 마을에 있는 집은 3 이상 1,000,000 이하 입니다. money 배열의 각 원소는 0 이상 1,000 이하 정수입니다. 풀이전략 각 집은 동그랗게 배치되어 있기 떄문에, 첫 번째 집을 털게 될 경우 마지막 집은 털 수 없습니다. 그래서 저는 첫 번째 집을 털 경우 dp[0][i]와 첫 번째 집을 털지 않을 경우 dp[1][i]로 나누어서 풀었습니다. 그럼 이제, dp[i]번째는 어..

안녕하세요! 오늘은 제가 "스프링과 JPA 기반 웹 애플리케이션 개발"을 클론코딩하면서 보았던 비동기 개념에 대해 배우고 정리해보겠습니다. 우선, 저는 동기와 비동기, 블로킹과 논블로킹이라는 것에 대해 좀 생소했었는데, 여기를 통해 개념이 좀 많이 잡혔습니다. 제가 이 네가지 개념에 대해 작성하는 것 보다는 참조하는 것이 훨씬 여러분들께 도움이 될 것 같아 저 링크를 참조하시면 될 것 같습니다. 이제 위 네가지 개념에 대해 알았다면, 본격적으로 실습해보겠습니다. 저는 이 게시글을 참조해서 작성했습니다. 제 설명이 부족하다면 해당 게시글을 참조하시면 될 것 같습니다. Configuration 스프링에서 비동기 작업을 하기 위해서는 Configuration을 등록해주어야 합니다. @Configuration ..

문제는 여기! 안녕하세요! 이번 포스팅은 2021 카카오 블라인드 채용 문제였던 "순위 검색" 문제를 풀이해보겠습니다. 프로그래머스에서는 레벨 2로 나와있지만 꽤 어려웠습니다. 특히 효율성 테스트를 만족시키는게 까다로웠는데, query에서 -가 있는 경우 어떻게 처리를 할지 좀 고민을 많이했던 문제였습니다. 그럼 바로 풀이해보겠습니다! 제한사항 및 주의사항 info 배열의 크기는 1 이상 50,000 이하 입니다. 점수는 1 이상 100,000 이하의 자연수입니다. query 배열의 크기는 1 이상 100,000 이하 입니다. 풀이전략 info 리스트의 언어, 직군, 경력, 소울푸드를 하나로 묶어서 딕셔너리의 키로 사용합니다. 이때, query에서 -가 포함된 경우도 존재하기에 언어가 있을 경우와 '-'..