전체 글
-
[백준] Java - 줄 세우기개발/알고리즘 2022. 6. 1. 23:52
2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 백준의 위상정렬 문제 줄 세우기의 자바 풀이다. 위와 같이 순서가 정해져 있고 사이클이 없는 그래프를 정렬하는 알고리즘이 위상정렬이다. "진입 차수"와 "인접 리스트"를 통해서 문제를 해결할 수 있었다. 위의 그림에서 6을 보면 4와 5로부터 진입하는 것을 볼 수 있다. 2개의 노드가 6으로 진입하므로 진입 차수는 2이다. 반대로 1이나 2는 진입차수가 0이다. 인접리스트를 통해 연결된 다음 노드를 저장하고 진입차수가 ..
-
[OAuth 2.0 API 보안] OAuth 2.0보안/OAuth 2.0 2022. 5. 19. 17:22
OAuth 2.0에 대해 OAuth 2.0은 OAuth 1.0에 기반을 두었지만 OAuth WRAP(웹 리소스 인가 프로필)의 영향을 크게 받았다. OAuth 1.0은 위임에 대한 프로토콜이고 OAuth 2.0은 인가를 위한 프레임워크이다. 1. OAuth 2.0 💡 OAuth 2.0은 접근에 대한 위임 문제를 담당한다. 외부의 서드파티 애플리케이션이 서비스의 데이터에 접근하고자 한다면 OAuth Provider의 자격 증명을 서드파티 애플리케이션과 공유한다. 이를 통해 서드파티 애플리케이션이 접근 권한을 위임 받을 수 있다. 다만 이 접근 권한의 위임은 서드파티 애플리케이션의 접근을 인정하는 것이기에 큰 문제를 발생시킬 수 있다. 이에 OAuth 2.0은 이 자격증명을 서드파티 애플리케이션과 공유하지 ..
-
[OAuth 2.0 API 보안] TLS를 통한 API 보안보안/OAuth 2.0 2022. 5. 19. 03:20
1. Order API 확인 스프링부트를 통한 예제 Order API를 이용하여 간단하게 알아보고자 한다. org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-web 예제에서 위 종속성은 각각 다음을 제공한다. 다른 스프링 모듈의 통합을 위한 starter 톰캣과 스프링 MVC, REST 등의 환경과 구조를 제공하는 starter-web 애플리케이션 모니터링 및 관리를 위한 starter-actuater @RestController @RequestMapping(value = "/order") public class OrderProcessing { @RequestMapping(val..
-
[SpringBoot] URL 이미지 반환하기(2) - Redis Caching개발/Java 2022. 5. 16. 15:55
[SpringBoot] URL 이미지 반환하기 스프링부트를 활용해서 API 서버를 만들면서 이미지가 담긴 URL을 반환해주는 기능이 필요했다. 클라이언트가 서버의 URL로 접근해서 이미지를 요청하면 외부 API의 정적 이미지를 담은 URL을 내 쪽 www.floodnut.com 앞서 구현한 URL 이미지를 캐싱하는 작업을 진행하고자 한다. 우선 캐싱을 진행하고자 한 이유는... 이미지는 외부 API를 통해 요청된다. API 호출 횟수를 줄이기 위해서다. 반복 요청에 대해서 외부 API로의 이미지 요청의 응답 속도를 줄이기 위해서다. 그렇다면 NoSQL인 Redis를 선택한 이유는? Key-Value를 통해 원하는 이미지만 빠르게 반환하기 위해서다. 여러 이미지를 반환한다면 RDBMS가 더 유리할 수도 있..
-
[프로그래머스] Python - 거리두기 확인하기개발/알고리즘 2022. 5. 10. 20:10
코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 프로그래머스 레벨2 문제로 카카오 인턴십 코딩테스트 출제 문제다. 주어진 리스트에서 사람들이 거리두기를 지키는지 확인하면 된다. 이 문제의 경우 BFS-FloodFill로 해결할 수 있었다. ..