전체 글 106

[Spring Security] Authorization Server와 Web Security 설정

[Spring Security] Authorization Server와 Web Security 설정, 토큰 발급 Spring Boot는 아래 dependency를 통해 Spring Security를 쉽게 사용할 수 있다. 아래 dependency에는 Spring Security와 관련된 라이브러리들이 존재한다. org.springframework.security.oauth.boot spring-security-oauth2-autoconfigure 2.1.8.RELEASE Spring Security 웹 로그인 Spring Security 라이브러리를 적용하게 되면 별도의 설정을 하지 않더라도 Spring Security가 적용된다. localhost:9000을 접속하면 Spring Security에서 자..

Spring/Security 2021.03.24

1780번 종이의 개수

출처: www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net 위 문제는 분할 정복 문제이다. 분할 정복 알고리즘 문제는 처음 풀어보긴 해서, 어떻게 접근할지 몰라 구글링의 힘을 빌렸다. 2번에서 같은 크기의 9개의 종이로 자르고 --> 이 부분을 통해 분할 정복임을 알 수 있다. 풀이의 경우에는 이중 for문과 배열 시작/종료 지점에 대해서만 잘 생각한다면 금방 풀 수 있는 문제이다. 전체 소스: github.com/jmmm25/Algorithm/blo..

Algorithm/BOJ 2021.02.12

Medium 1689. Partitioning Into Minimum Number Of Deci-Binary Numbers

문제 출처: leetcode.com/problems/partitioning-into-minimum-number-of-deci-binary-numbers/ Partitioning Into Minimum Number Of Deci-Binary Numbers - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com deci-binary란 0으로 시작하지 않는 0과 1로 이루어진 값이다. 32는 10 + 11 + 11 의 구성으로 이루어진 deci-binary로 표현을 할 수..

Algorithm/LeetCode 2021.02.11

11279번 최대 힙

문제 출처: www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net C++ STL의 최대힙 priority_queue를 통해 쉽게 해결할 수 있는 문제이다. Max Heap의 개념 - 최대 트리(Max Tree)는 각 노드의 키(Key)값이 (자식 노드가 있다면) 그 자식의 키(Key)값보다 작지 않은(=크거나 같은) 트리이다. - 최대 힙(Max Heap)은 최대 트리(Max Tree)이면서 완전 이진 트리(Complete Binary Tree..

Algorithm/BOJ 2021.02.11

10819번 차이를 최대로

출처: www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 주어진 수를 적절하게 순서를 변경하여 최대 or 최소 값을 구하는 문제는 순열을 통해 문제 해결을 하면 된다. C++ STL의 next_permutation 함수를 통해 쉽게 문제를 해결할 수 있다. 전체 소스 보기 : github.com/jmmm25/Algorithm/blob/master/BOJ/10819.%20%EC%B0%A8%EC%9D%B4%EB%A5%BC%20%EC%B5%9C%EB%8C%80%EB%A1%9C/m..

Algorithm/BOJ 2021.02.10

1541번 잃어버린 괄호

문제출처: www.acmicpc.net/problem/1541 위 문제는 주어진 식에 괄호를 적절히 쳐서 결과 값을 최소로 만드는 문제이다. 해당 예제 55 - 50 + 40는 55 - (50 + 40)으로 괄호를 적용할 경우 최소가 된다. for문을 통해 문자인 숫자를 붙여주고, 처음에 나온 연산자가 + 일 경우에는 더해주고, 그 외에는 -를 해주는 것이 최소값이 된다. #include using namespace std; string str; int sol(string str) { int ret = 0; string s = ""; bool isMinus = false; for (int i = 0; i > str; cout

Algorithm/BOJ 2020.12.14

Object 6장

6. 메시지와 인터페이스 객체지향 프로그래밍에 대한 가장 큰 오해 : 애플리케이션이 클래스의 집합 클래스 : 개발자가 직접 만지고, 실험하고, 고쳐볼수 있는 실제적이고 구체적인 도구 객체가 구행하는 책임에 초점을 맞춰야한다 -> 애플리케이션은 클래스로 구성되어 있지만 메시지로 정의된다 01 협력과 메시지 클라이언트-서버 모델 메시지를 전송한 객체(클라이언트)의 요청에 대해 수신한 객체(서버)가 응답하는 구조 협력에 참여하는 객체들은 동시에 클라이언트와 서버의 역할을 수행하는 것이 일반적임 두 가지 메시지 집합 객체가 수신하는 메시지의 객체 외부의 객체에게 전송하는 메시지 집합 메시지와 메시지 전송 메시지 (message) : 객체들이 협력하기 위해 사용할 수 있는 유일한 의사소통 수단 operation ..

Object 2020.07.23

Object 5장

05 책임 할당하기 데이터 중심 설계는 행동보다 데이터를 먼저 결정한다 협력이라는 문맥을 벗어나 고립된 객체의 상태에 초첨을 맞추기 때문에 캡슐화를 위반하기 쉬움 요소들 사이의 결합도가 높아짐 코드 변경이 어려워짐 책임을 초점을 맞춰서 설계할 때 직면하는 가장 큰 어려움 - 어떤 책임을 객체에게 할당할 것인가 GRASP 패턴 응집도와 결합도, 캡슐화, 책임할당과 트레이드오프의 기준 제공 01 책임 주도 설계를 향해 책임 중심의 설계로 전환을 위해 데이터 보다 행동을 먼저 결정하라 협력이라는 문맥 안에서 책임을 결정하라 데이터보다 행동을 먼저 결정하라

Object 2020.07.22

Object 4장

04 설계 품질과 트레이드오프 객체지향 설계 = 역할, 책임, 협력 협력 : 애플리케이션 기능구현을 위해 메시지를 주고 받는 객체들의 상호작용 책임 : 객체가 다른 객체와 협력하기 위해 수행하는 행동 역할 : 대체 가능한 책임의 집합 책임 주도 설계 이 중 책임이 제일 중요 : 적절하게 할당되지 않으면 원활한 협력도 기대 x, 역할도 협력과 조화 x 올바른 객체지향 설계 : 낮은 결합도, 높은 응집도, 올바른 책임 할당 데이터 중심의 영화 예매 시스템 객체지향 설계는 두 가지 방법을 이용해서 시스템 객체로 분리 가능 상태를 분활의 중심축 사용 : 데이터 중심 책임을 분활의 중심축 사용 : 객체의 행동에 초점 (더 좋은 방법)) 상태 = 데이터 책임을 분활의 중심축으로 사용해야 더 좋은 설계 객체의 상태는..

Object 2020.07.21

Object 3장

03 역할, 책임, 협력 지연 바인딩 메커니즘으로 구현한 다형성 코드 재사용을 위해 상속 < 합성 (composition) 01 협력 영화 예매 시스템 돌아보기 객체지향 원칙을 따르는 제어 흐름은 : 하나의 객체에 의해 통제 x 객체들의 요청/응답으로 분배된 로직 수행 협력 : 기능구현을 위해 수행하는 상호작용 책임 : 협력에 참여하기 위해 수행하는 로직 역할 : 객체들이 협력 안에서 수행하는 책임들의 행동의 모음 협력 객체간의 협력은 메시지 전달로 이루어짐 (method) 메시지를 받데 어떻게 응답할지는 객체가 선택 자신이 가진 정보를 가지고 액션을 취함으로 결합은 느슨하게 만듬 캡슐화를 통해 하나의 객체가 다른 객체에게 줄 수 있는 여파를 제어할 수 있음 협력이 설계를 위한 문맥을 결정한다 섬인 객체..

Object 2020.07.20