목록Study (268)
전공공부
PSA (Portable Service Abstraction) PSA (Portable Service Abstraction)는 스프링에서 서비스 추상화를 구현하는 개념입니다. 이는 특정 기술에 종속되지 않고, 일관된 인터페이스를 제공하여 서비스들을 편리하게 교체하고 테스트하기 위한 목적으로 도입되었습니다. 그렇다면 이 예제가 무엇일까요? import com.test.tester.portableServiceAdapter.dao.UserDao; import com.test.tester.portableServiceAdapter.dto.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdb..
설명 다익스트라 알고리즘을 사용했다고 생각했으나 사실 가물가물하여 이것이 다익스트라의 형태가 맞는 것인지 헷갈린다. 그저 방문 체크 여부를 하고 이전 거리로 부터 가져온 거리 웨이트 값을 더해서 이런 형태로 풀었다. 코드 package shortest_path; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class BOJ_18352 { static List[] graph; public static void main(String[] args) throws Exception{ BufferedReader in = new BufferedReader(new InputStreamReader(Sy..

Traffic (Ingress)Web -> :80 -> API :5000 -> DB :3306 API -> Web (Egress) Ingress Role : 웹 서버로 부터 들어오는 요청 Driving Egress Role : DB 응답 웹 서버로 들어온 요청의 응답 Driven Network Security 쿠버 네티스는 기본적으로 All Allowed 됩니다. 클러스터 내부 Pod 간 통신이든 뭐든요. 그래서 우리는 Web -> API -> DB 이런것이 바로 가능한 이유가 이런 이유인데요 만일, Web -> DB는 막고 싶다면 어떻게 해야 할까요? Netwok Policy를 이때 적용 합니다. Network Policy - Rules Allow Ingress Traffic From API Pod o..
Docker Security docker run ubuntu sleep 3600 Container는 Namespace 단위로 격리되고 실행된다. 그래서, 프로세서에 직접 접근해서 들어가서 ps aux 하면 PID는 1이 나올 것이고 이에 대해서 Host 범위에서 ps aux 시 그저 실행되는 하나의 컨테이너 작업으로 표시되어서 PID 31157 이런식으로 랜덤 ID가 나올 것이다. 어쨌든 말하고 싶은 것은 host의 일반 유저와 Container의 접근 권한이 다르다는걸 말하고 싶었다. docker run --privileged ubuntu 그래서, 이렇게 유저가 달라서 일반 Docker 유저는 권한을 모두 부여 받지 못한다. 따라서, 특정 명령어를 쓰기 위해서는 위와 같이 root 권한을 부여한다던지 ..

Image image는 무엇이고 이미지는 어디서 나온 것일까요? 이미지는 도커로 부터 온 것이고 library/nginx 이 사실 nginx image로 저장되는 건데 보통 유저 계정 이름이 없이 라이브러리 형태로 바로 따라오는 이미지 형태는 도커에서 공식으로 지원하기 때문에 image: nginx 처럼 쓸 수 있었습니다. 보통의 도커 패스는 이렇습니다. // Private Repository 자 그럼 도커 허브에서 내 프라이빗 레지스트리에 등록한 도커 이미지를 가져 올 수 있겠네요. docker login private-registry.io docker run private-registry.io/apps/internal-app 위와 같이 내 프라이빗 레지스트리로 부터 가져온 도커 이미지를 쓸 수 있습니..
정확하지는 않으나 ServiceAccount는 token을 생성하고 생성된 토큰 정보를 이용해서 각 pod에 도달 할 수 있는 역할을 수행한다. 예를 들어서 ca.crt 등 요청으로 curl 날려서 API 요청을 일일이 했던 것을 serviceaccount를 이용해서 연결을 하는데 ServiceAccounts만들고 k create token SECRET_ACCOUNT_NAME 을 하면 해당 정보로 도달 할 수 있는 토큰을 주고 이를 사용하여도 되고 아니면 아래와 같이 RoleBinding에 설정해서 접근 권한의 대한 허가를 주고 이때에 Deployments에도 해당 ServiceAccount로 접근 가능하게 설정을 하면 된다. apiVersion: v1 kind: Pod metadata: name: my..
설명 PRIM으로 풀고 성별에 따른 의존성을 Data 객체에 추가했다. 그리고, 이를 모두 다 이어지지 못한 경우에 예외처리를 더하여 문제의 조건을 알맞게 맞췄다. 코드 package MST; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.PriorityQueue; import java.util.StringTokenizer; public class BOJ_14621 { private static class Data implements Comparable{ int en..
설명 타입만 잘 지정하면 된다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static class Data implements Comparable{ int end; int weight; public Data(int end, int weight) { this.end = end; this.weight = weight; } @Override public int compareTo(Da..