전체 글
-
Mock 객체란?테스트코드(Test Code) 2022. 3. 15. 18:56
Mock 객체란? Mock은 사전적 의미로 모조품이라는 뜻을 가집니다. 즉, 제품의 외양을 흉내 낸 모조품을 말하며 소프트웨어에서는 모듈의 겉모양이 실제 모듈과 비슷하게 보이도록 만든 가짜 객체를 Mock 객체라고 합니다. 왜 사용할까요? 테스트 카이스 작성이 어려운 상황과 Mock 객체가 필요한 상황은 종종 일치하곤 합니다. 대부분의 경우 모듈이 가진 '의존성'이 근본적인 원인이 됩니다. 따라서 그 '의존성'을 단절시키기 위해 사용합니다. 예를 들어 다음과 같은 상황에 사용합니다. 1. 테스트 작성을 위한 환경 구축이 어려울 때 다른 부서와 연계 모듈이어서 다른 쪽에서 승인을 해줘야 테스트가 가능한 경우 방화벽으로 막혀 있어서 통과가 어려운 경우 다른 부서에게 모듈을 아직 넘겨받디 못한 경우 오라클 데..
-
[백준] 2563 : 색종이 - 자바(JAVA)알고리즘/백준 2022. 3. 15. 00:01
https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 문제 해석 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 변과 도화지의 변이 평행하도록 붙입니다. 여러 장의 색종이를 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오.(종이가 겹치게 붙을 수 있습니다.) 입력 첫째 줄에 색종이의 수가 주어집니다. 이어 둘째 줄부터 한 줄..
-
API 게이트웨이(Gateway)란?MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 14. 01:05
API 게이트웨이(Gateway)란? API란? Application Programming Interface의 약자로 컴퓨터나 컴퓨터 프로그램 사이의 연결을 제공합니다. 게이트웨이란? 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어 Microservice Architecture(이하 MSA)에서 언급되는 컴포넌트 중 하나이며, 모든 클라이언트 요청에 대한 end point를 통합하는 서버입니다. 서비스로 전달되는 모든 API요청의 관문역할을 하는 서버로 시스템의 아키텍처를 내부로 숨기고 외부의 요청에 대한 응답만을 적절하게 합니다. 클라이언트는 서버의 구조가 Monolithic Archiecture인지 Microserv..
-
[백준] 1158번 : 요세푸스 문제 - 자바(JAVA)알고리즘/백준 2022. 3. 14. 00:01
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제 해석 문제는 사람의 수 N과 제거할 순번인 K를 입력받습니다. 초기 시작 자료구조는 다음과 같습니다 1, 2, 3, 4, ......, N 여기서부터 순서대로 K번째를 제거합니다. N=5라 가정하여 초기 시작 자료구조는 1, 2, 3, 4, 5 이며 K=2라고 가정해보겠습니다. 초기 시작 1, 2, 3, 4, 5 2번째수인 2제거 step 1 : 1, 3, 4, 5 굵은글씨 3부터 2번째수인 4제거 step 2 : 1,3,5 굵은글씨 5부터 2번째수인 1제거 step 3 : 3,4 ..
-
프록시 서버란?MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 13. 23:20
프록시 서버란? 단순히 캐시 같은 기능을 하는 서버..?라고만 알고 있었기 때문에 확실하게 정리해보고자 합니다. Proxy라는 단어의 뜻은 무엇일까요? '대리' 라는 의미를 가집니다. 네트워크 기술에서는 프락시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킵니다. 간단히 말하자면 프록시 서버는 클라이언트와 서버 사이의 중개인(대리인)으로써 클라이언트의 모든 HTTP 요청을 받아 서버로 전달합니다. Alice와 Bob이 직접 통신하면 될 텐데 왜 프락시 서버를 사용할까요? 1. 캐시 데이터를 사용하기 위해 프록시 서버 중 일부는 프록시 서버에 요청된 내용을 캐시를 사용해 저장해둡니다. 그러면 캐시에 저장되어 있는 내용에 ..
-
[백준] 1275번 : 커피숍2 - 자바(JAVA)알고리즘/백준 2022. 3. 13. 16:41
https://www.acmicpc.net/problem/1275 1275번: 커피숍2 첫째 줄에 수의 개수 N과 턴의 개수 Q가 주어진다.(1 ≤ N, Q ≤ 100,000) 둘째 줄에는 처음 배열에 들어가 있는 정수 N개가 주어진다. 세 번째 줄에서 Q+2번째 줄까지는 x y a b의 형식으로 x~y까지의 합 www.acmicpc.net 문제 해석 N개의 정수를 가지고 게임을 한다. 우리는 심판 역을 맡았기 때문에 질문에 대한 답들을 미리 알아야 한다. 첫째 줄에 수의 개수 N과 턴의 개수 Q가 주어진다. 둘째 줄에는 처음 배열에 들어가 있는 정수 N개가 주어집니다. 셋째 줄부터 Q+2번째 줄까지는 x y a b의 형식으로 x~y까지의 합을 구하라, a번째 수를 b로 바꾸어라 라는 뜻의 데이터가 주어..
-
세그먼트 트리란?알고리즘/알고리즘 2022. 3. 13. 15:39
세그먼트 트리란? 여러 개의 데이터가 연속적으로 존재할 때 특정한 범위의 데이터의 합을 구하기 위한 자료구조입니다. 배열에서 특정 구간의 합을 가장 빠르게 구하기 위한 방법은 무엇일까요? 예시 데이터 : 5 8 7 3 2 5 1 8 9 8 7 3 여기에서 인덱스 1부터 10까지 데이터의 합을 구하려면 어떻게 할 수 있을까요? 간단하게 인덱스 1부터 10까지 데이터를 다 더해준다면 데이터의 개수에 의존하여 O(N)의 시간 복잡도가 나옵니다. 이것을 트리 구조를 이용해서 구한다면 O(logN)의 시간복잡도로 부분합을 구할 수 있습니다. 다음 그림을 보면 조금 더 이해하기 쉽습니다. 이처럼 더한값을 다시 재사용하면서 최종적으로 0~14의 연산 결과를 얻기 때문에 O(logN) 시간을 보장합니다. Segment..
-
[Java] try-catch와 try-with-recourcesJava 2022. 3. 13. 00:01
try-with-resources는 try(...)에서 선언된 객체들에 대해서 try가 종류 될 때 자동으로 자원을 해제해주는 기능입니다. try에서 선언된 객체가 AutoCloseable 인터페이스를 구현하였다면 Java는 try구문이 종료될 때 객체의 close() 메서드를 호출해 줍니다. try-catch가 존재했는데 JDK7부터 try-with-resources가 왜 등장했을까요? Java7 이전에, try-catch-finally 구문으로 자원을 해제하려면 코드의 양도 많고 지저분해집니다. 코드를 통해 설명드려보겠습니다. 다음 코드는 try-catch-finally를 사용하여 문자열 숫자를 입력받아 출력하는 코드입니다. import java.io.BufferedReader; import java..