전체 글 2520

[Programmers] 행렬과 연산

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/118670 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2 * 50,000과 같은 케이스가 있기 때문에 이차원 배열을 선언하고 문제에서 주어진 대로 정직하게 구현하면 TLE가 발생하는 문제였습니다.덱을 이용해야한다는 것은 알았는데 Rotate 연산을 어떻게 최적화시켜야 할까 고민하다가 바킹독님 해설을 보고 풀 수 있었습니다. 이 문제의 핵심은 1열과 마지막 열을 별도 Deque으로 분리하고 나머지는 각 행을 기준으로 Deque을 선언해 주는 것입니다.위와 같이 처리해주면 Shif..

[Kotlin] CoroutineDispatcher 정리

Dispatcher란?dispatch와 -er의 합성어dispatch의 `보내다`라는 뜻에 -er이 붙어 `무언가를 보내는 주체`라는 뜻 CoroutineDispatcher`코루틴을 보내는 주체`코루틴은 일시 중단이 가능한 `작업`이기 때문에 쓰레드가 있어야 실행될 수 있음CoroutineDispatcher는 코루틴을 쓰레드로 보내 실행시키는 역할코루틴을 쓰레드로 보내는 데 사용할 수 있는 쓰레드나 쓰레드 풀 가짐코루틴을 실행 요청한 쓰레드에서 코루틴이 실행되도록 만들 수 있음 CoroutineDispatcher 동작 과정CoroutineDispatcher 객체에 코루틴의 실행이 요청됨CoroutineDispatcher 객체는 실행 요청받은 코루틴을 작업 대기열에 적재시킴CoroutineDispatche..

[Programmers] 올바른 괄호의 갯수

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/12929 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 올바른 괄호 문자열의 개수를 구하기 위해 카탈랑 수(Catalan Number)를 구해주면 되는 문제였습니다.점화식은 다음과 같습니다.   개발환경: Programmers IDE   지적, 조언, 질문 환영합니다! 질문 남겨주세요~

백준 1017번 소수 쌍

문제 링크입니다: https://www.acmicpc.net/problem/1017 소수 관련된 문제이므로 에라토스테네스의 체와 이분 매칭을 통해 풀 수 있는 문제였습니다.저도 처음에 백트래킹으로 접근했다가 TLE가 발생했던 문제입니다 ㅠ 알고리즘은 다음과 같습니다.1. nums[0]과 합쳤을 때 소수를 이루는 nums[i]를 매칭합니다.2. 남은 수들로 이분 그래프를 만드는데 왼쪽 집합은 홀수인 수들, 오른쪽 집합은 짝수인 수들로 구성하며 간선은 두 수의 합이 소수일 때 연결시킵니다.3. 이분 그래프에서 최대 매칭을 찾아서 모든 노드가 매칭에 포함되는지 확인합니다.3.1 매칭의 크기가 남은 노드의 절반이라면 모든 수를 짝지을 수 있다는 의미입니다.  개발환경:Visual Studio 2017 지적, 조..

알고리즘/BOJ 2024.10.30

Microsoft AZ-104 간단 후기

회사가 MS와 MOU를 체결한 후, AZ 자격증을 취득하면 포상을 준다는 소식을 듣고 AZ-104 시험에 응시했습니다.1주 반 동안 공부한 끝에 운 좋게 합격할 수 있었습니다.  문제 유형응시 날짜마다 다른 것 같은데 저 같은 경우 50문제가 출제되었고, 문제는 다섯 개의 도메인에 다음과 같이 분포되어 있습니다.Azure ID 및 거버넌스 관리 (15~20%)스토리지 구현 및 관리 (15~20%)Azure 컴퓨팅 리소스 배포 및 관리 (20~25%)가상 네트워킹 구현 및 관리 (20~25%)Azure 리소스 모니터링 및 유지 관리 (10~15%) 문제 난이도AWS Practitioner와 마찬가지로 모두 객관식으로 구성되어 있지만, 상대적으로 난이도는 더 높았습니다.AWS Practitioner는 키워드..

[DEV] 기록 2024.10.28

[Programmers] 충돌위험 찾기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 경로 길이가 최대 100이므로 O(N^2)으로도 수월하게 풀 수 있는 구현 문제였습니다.  개발환경: Programmers IDE   지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Spring Security] 전역 메서드 보안

전역 메서드 보안 (Global Method Security)클래스나 메서드 단위에서 특정 권한을 가진 사용자만 메서드를 실행하도록 제한할 수 있는 기능전역 메서드 보안에서 수행할 수 있는 두 가지 주요 작업은 다음과 같음호출 권한 부여필터링 기본적으로 스프링 시큐리티에서는 전역 메서드 보안이 비활성화 상태로 제공되기 때문에 해당 기능을 사용하기 위해서는 전역 메서드 보안을 우선 활성화해줘야 함Spring Security 6 버전에서는 @EnableMethodSecurity 하위 버전에서는 @EnableGlobalMethodSecurity 어노테이션 부여전역 메서드 보안을 활성화시키면 스프링의 Aspect(보안 Aspect)가 하나 활성화 됨해당 Aspect는 호출을 가로채어 권한 부여 규칙이 충족되지 ..

[Spring Security] CSRF & CORS

CSRF (Cross-Site Request Forgery)웹 애플리케이션의 취약점을 악용해 사용자의 권한을 도용하여 악의적인 요청을 보내는 공격을 방지하기 위한 보안 기능Spring Security는 CSRF 공격을 방지하는 기본적인 메커니즘을 제공하며 CSRF 보호는 Spring Security를 사용하는 대부분의 애플리케이션에서 기본적으로 활성화되어 있음  CSRF 공격사용자가 자신도 모르게 공격자의 의도된 작업을 수행하게 만드는 공격 기법사용자의 의지와는 무관하게 공격자가 의도한 행동을 수행해서 웹 페이지의 보안을 취약하게 하거나 수정/삭제 등의 작업을 하는 공격 방법ex) Man in the Middle 공격을 통해 인증된 세션을 탈취하고 해당 세션을 기반으로 서버에 악성 요청을 보냄 Sprin..

[Spring Security] 필터 체인과 커스텀 필터

HTTP 필터애플리케이션의 HTTP 요청이 처리되기 전에 다양한 보안 검사를 수행하여 인증 및 인가 등의 작업을 처리Spring Security는 다양한 필터들을 체인 형태로 연결하여 요청이 처리될 때 순차적으로 실행되도록 구성하며 각 필터는 특정 보안 작업을 수행하며, 그 결과를 다음 필터에 전달함전체 필터 체인은 SecurityFilterChain 인터페이스에 의해 관리됨기본 설정으로 되어 있는 필터와 커스텀하게 설정된 필터를 함께 사용하여 HTTP 요청을 필터링실무의 다양한 비즈니스 요구사항을 구현하기에는 기본 필터 구성만으로는 부족하기 때문에 커스텀하게 필터를 정의하는 케이스가 많음 필터 체인은 필터가 작동하는 순서가 정의된 필터의 모음을 나타내며 필터 구현체에는 각자의 순서가 존재함각 필터는 순..

[Spring WebFlux] Reactive Streaming 데이터 처리

개요Spring WebFlux는 SSE(Server-Sent Events)를 이용해 데이터를 Streaming 할 수 있습니다.SSE는 spring 4.2 버전부터 지원되었으며 Spring 5 버전부터 Reactor의 Publisher 타입인 Flux를 이용해 조금 더 편리한 방법으로 SSE를 사용할 수 있게 되었습니다. SSE서버가 클라이언트에게 단방향 스트리밍으로 데이터를 전송하는 방식WebSocket은 양방향 통신이 가능한 기술이지만 SSE는 단방향 클라이언트는 한 번 연결을 수립한 후 서버에서 발생하는 이벤트나 업데이트를 지속적으로 받아볼 수 있으며 주로 실시간 데이터 전송이 필요한 애플리케이션에서 사용됨SSE는 기존의 HTTP 프로토콜 위에서 동작하고 웹 브라우저에서 표준적으로 제공되며, tex..