
Jenkins를 이용한 CI/CD Pipeline 구축해보기(2)
2022. 10. 4. 01:30
DailyStudy/CI CD
해당 시리즈는 현재 필자가 연습하고자 하는 서비스 아키텍쳐와 맞지 않아 Springboot 와 Gradle 을 사용한 시리즈를 다시 작성하고 있습니다. 최신 시리즈를 확인하여주시고 이 시리즈는 끝마치지 못한 부분이 있어 설치 부분만 참고를 하시길 바랍니다. (최신 시리즈) Jenkins&Springboot CI/CD 정리(1) Jenkins&Springboot CI/CD 정리(1) 필자가 경험한 Springboot 프로젝트와 Jenkins CI 를 활용한 CI/CD 구축에 대해 정리를 해보고자 합니다. =) 이 시리즈에서는 이미 작성된 내용에 대해선 해당 글로 대체 할 예 0andwild.tistory.com 1편에서 만들어둔 EC2 인스턴스를 중지시키고 이미지(AMI)를 생성해줄 겁니다. 아직 인스턴스..

편리한 EC2 인스턴스 접속(SSH Client Tool)
2022. 10. 2. 16:55
DailyStudy/AWS
편리한게 AWS EC2 인스턴스에 접속을 하기 위해 SSH Client Tool 을 사용해보자! 필자는 Windows 환경에서 EC2 인스턴스에 접속을 하기 위해 gitbash를 사용하는 편이지만 좀 더 편리하게 접속을 하기위해 Terminus 라는 Tool을 사용해 보고자 한다! 우선 아래 링크를 통해 자신의 OS에 맞는 프로그램을 다운을 받자. Termius for Windows | Download - Split view. You can open up to 4 terminals inside a single tab. - Enterprise SSO. Termius supports more than 30 identity providers. termius.com Termius for macOS | Downl..

Jenkins를 이용한 CI/CD Pipeline 구축해보기(1)
2022. 10. 2. 03:58
DailyStudy/CI CD
해당 시리즈는 현재 필자가 연습하고자 하는 서비스 아키텍쳐와 맞지 않아 Springboot 와 Gradle 을 사용한 시리즈를 다시 작성하고 있습니다. 최신 시리즈를 확인하여주시고 이 시리즈는 끝마치지 못한 부분이 있어 설치 부분만 참고를 하시길 바랍니다. (최신 시리즈) Jenkins&Springboot CI/CD 정리(1) Jenkins&Springboot CI/CD 정리(1) 필자가 경험한 Springboot 프로젝트와 Jenkins CI 를 활용한 CI/CD 구축에 대해 정리를 해보고자 합니다. =) 이 시리즈에서는 이미 작성된 내용에 대해선 해당 글로 대체 할 예 0andwild.tistory.com 우선 AWS(Amazon Web Service)에서 제공하는 Ec2(Elastic Compute..

Dispatcher selvelet이란?
2022. 9. 27. 23:48
DailyStudy/Spring
Dispatcher selvelet이란? 디스패처 서블릿의 dispatch는 “보내다” 라는 뜻을 가지고 있다. 이러한 단어의 뜻을 내포하는 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있다. 좀 더 자세한 절차는, 클라이언트로부터 어떠한 요청이 들어오면 Tomcat(톰캣)과 같은 서블릿 컨테이너가 요청을 받게 된다. 그리고 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 됨. 그러면 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야 하는 컨트롤러를 찾아서 작업을 위임한다. 여기서 FrontController라는 용어는 주로 서블릿 컨테이너의..

하샤드수(Lv.1)[프로그래머스]
2022. 9. 27. 14:11
알고리즘
import java.util.*; class Solution { public boolean solution(int x) { boolean answer = true; //split을 하기위해 String type으로 변환 List split = List.of(String.valueOf(x).split("")); int sum = 0; for (String s : split) { //x의 x자리 수의 합을 위해 int타입으로 변환 후 sum+= sum += Integer.parseInt(s); } //x를 sum으로 나누었을 때 나머지가 0이 아니면 하샤드 수 x if (x%sum!=0){ answer = false; } return answer; } }

최댓값과 최솟값(Lv.2)[프로그래머스]
2022. 9. 26. 15:15
알고리즘
import java.util.*; class Solution { public int solution(int[] citations) { List sort = new ArrayList(); for (int i : citations){ sort.add(i); } int hDex = 0; sort.sort(Collections.reverseOrder()); for (int i = 0; i=i+1){ hDex = i +1; } if (sort.get(i)

최댓값과 최솟값(Lv.2)[프로그래머스]
2022. 9. 24. 18:18
알고리즘
import java.util.*; class Solution { public String solution(String s) { String answer = ""; List split = new ArrayList(List.of(s.split(" "))); List integers = new ArrayList(); for (String s1: split){ int number = Integer.parseInt(s1); integers.add(number); } Collections.sort(integers); answer+= integers.get(0); answer+= " "; answer+= integers.get(integers.size()-1); return answer; } }

JVM(JavaVirtualMachine)파헤치기 (2)
2022. 9. 23. 18:31
DailyStudy/Java
JVM의 구성요소 ▼JVM은 아래와 같이 구성되어져 있다.▼ 1. 클래스 로더(Class Loader) JVM의 Class Loader는 javac에 의해 변환된 바이트코드 파일인 *.class 파일을 Runtime Data Areas에 로딩하여 프로그램을 구동한다. Class Loader의 로딩은 런타임에 일어나는데, 클래스에 처음 접근될 때 일어난다. 이를 통해 Lazy Loading Singleton 이 구현되기도 한다. (+ Class Loading 시간엔 Thread -safe 하다.) 2. 실행 엔진(Execution Engine) Class Loader가 Runtime Data Areas에 불러온 바이트 코드를 실행한다. 바이트 코드를 기계어로 변경해 명령어 단위로 실행하는데, 1바이트의 O..

JVM(JavaVirtualMachine) 파헤치기 (1)
2022. 9. 22. 20:04
DailyStudy/Java
문득 Java라는 언어를 공부하면서 JVM에 대한 궁금증이 생겼다. 단순히 작성한 코드를 실행시켜주는 가상컴퓨터 이다 라고만 알고 있었기에 어떻게 동작을하고 하는 역할은 무엇인지 궁금해졌기에 파헤쳐보고자 한다. JVM이란? Java Virtual Machine의 줄임말로 Java를 실행시키기 위한 가상컴퓨터 환경을 말한다. 그럼 JVM이 하는 역할의 무엇일까? Java는 OS에 종속적이지 않다. 위와 같은 조건을 충족 시키며 작성한 코드가 실행되기 위해선 Java와 OS사이에 무언가가 필요하다. 그게 바로 JVM이다. 작성한 소스코드인(원시코드) *.java 를 cpu가 인식하기 위해선 기계어(010101000101...)로 변환이 이루어져야 한다. 그럼 *.java 가 바로 기계어로 변환되어 실행이 되..

[1차]캐시 2018 KAKAO BLIND RECRUITMENT(Lv.2)[프로그래머스]
2022. 9. 22. 15:57
알고리즘
가장 오랫동안 참조하지 않은 페이지를 캐시에서 교체하는 것. LRU 알고리즘을 구현할때 Queue를 사용하면 편하다고 한다. Java에서는 LinkedList가 Queue의 구현체 이다. 가장 적게 참조한 페이지를 캐시에서 교체하는 것이다. import java.util.*; class Solution { public int solution(int cacheSize, String[] cities) { int time = 0; int hit = 1; int miss = 5; LinkedList q = new LinkedList(); //캐시 크기가 0일경우 모두 miss, cities의 길이 * 5 if (cacheSize == 0) { time = cities.length * 5; return time;..