전체 글
-
[OAuth 2.0 API 보안] API 보안 설계보안/OAuth 2.0 2022. 5. 9. 18:50
OAuth 2.0 1. 데이터 유출의 3가지 원인 연결성 최근 기업체들에선 많은 API나 시스템을 연동한다. 여기에는 보안적 결함이 존재하는 레거시 시스템들도 포함된다. 확장성 최근의 시스템들은 확장의 용이성을 고려하여 설계, 제작된다. 새롭게 추가되는 소스코드들의 기능은 브라우저와 같은 곳에서 보안 요소의 우회를 발생시킬 수 있다. 복잡성 복잡성으로 인해 파악되지 못한 취약점이 다수 존재할 수 있다. 복잡성은 유지보수의 난이도 상승으로 연결되어 수정하기 힘든 취약점이 다수 존재할 수 있다. 2. API 설계에서 고려할 점 사용자 경험 강한 보안 요소를 적용시키기 위해 사용자의 편의성을 과도하게 침범하면 안 된다. 나쁜 사례 : 과도한 비밀번호 조건 좋은 사례 : FaceID 성능과 비용 접근 키가 필요..
-
[백준] Java - 미로 탐색개발/알고리즘 2022. 4. 27. 23:01
2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 1 9 10 11 12 2 8 12 3 7 13 14 4 5 6 14 15 정말 쉬운 BFS 문제이자 FloodFill 알고리즘을 사용하는 문제이다. 파이썬으로 코테를 준비하다가 자바를 새로 준비해보려니 자바 자체의 문법을 이용하는게 좀 오래 걸렸다. 1, 1의 좌표에서 n, m 좌표까지의 최단 거리를 출력하면 된다. 기본적으로 이동할 수 있는 위치를 표시하는 배열과 방문 여부를 확인하는 배열을 입력 값의 크기만큼 할당하고 시작한다. 위의 표 처럼 다음 이동할 위치에는 현재 위치의 값에 1을 ..
-
[JAVA] 입출력개발/Java 2022. 4. 25. 20:37
우리가 자바를 통해서 일반적으로 입출력을 처리하는 방법에 대해서 알아본다. 파이썬의 경우 sys.stdin.readline(), input(), map(), split() 등을 이용하는 것처럼 여러가지의 경우를 정리할 것이다. 추가 내용이 있을 경우 업데이트 예정 일반적인 입출력 import java.io.*; import java.util.*; public class Main { public static void main(String[] args){ /* 입력 */ Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); /* 출력 */ System.out.println(n); } } Scanner와 표준 출력을 활용한 ..
-
[Spring Boot] URL 이미지 반환하기개발/Java 2022. 4. 25. 17:14
스프링부트를 활용해서 API 서버를 만들면서 이미지가 담긴 URL을 반환해주는 기능이 필요했다. 클라이언트가 서버의 URL로 접근해서 이미지를 요청하면 외부 API의 정적 이미지를 담은 URL을 내 쪽으로 끌고와서 해당 URL의 이미지를 내 서버의 URL로 접근할 수 있도록 해야했다. 외부 API에 직접 접근하면서 생기는 두 가지 문제점을 해결하고 싶었다. API키가 노출되는 점 URL 길이가 길어지는 점 위 두 개의 문제점을 해결하기 위해서 다음과 같은 방법을 생각했다. 외부 API URL에 접근해서 이미지만 객체 또는 바이트 배열로 받아오기 해당 이미지 객체를 바이트 배열로 반환하기 우선 아래와 같은 클래스와 함수를 만들었다. 파라미터로 전달되는 값들을 통해 URL을 구성하고 이를 통해서 URL 객체..
-
컴퓨터 네트워크 (1)Computer Science/Network 2022. 4. 20. 23:38
PROTOCOL? 네트워크 상에서 데이터, 메시지를 송, 수신하는 형태, 순서, 요청과 응답 방법 등을 일정하게 규정하는 규칙이다. 프로토콜마다 다른 기능과 역할을 수행하며 여러 프로토콜이 여러 계층에서 상호작용하여 사용자에게 서비스를 제공한다. PACKET SWITCHING 동시 접속을 지원하고 장애가 발생하거나 품질이 저하도 분산되어 공유한다. 패킷 별로 라우팅을 통해 경로를 지정해야 한다. 가용할 수 있는 네트워크 자원을 보장하지 않고 최선의 경우만을 지원한다. Admission control을 통해 대기 큐를 만들어 Circuit Switching의 전용 회선을 모방할 수 있다. Packet Switching에서 35명의 사용자 중 10명 이상이 동시에 해당 네트워크를 사용하는 확률은? CIRCU..