[Java] JIT 컴파일러란?
·
Java
JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. 컴파일러 vs 인터프리터 컴파일러와 인터프리터 모두 high-level language를 machine language로 번역한다. 컴파일러는 소스 코드(high-level language로 작성) 전체를 링커 등을 통해 한번에 번역하여 목적 파일(기계어로 작성)로 만들어 메모리상에 적재한다. 인터프리터는 소스 코드를 한 행씩 중간 코드로 번역 후 실행한다. 컴파일러는 소스코드 전체를 컴퓨터 프로세서가 실행할 수 있도록 바로 기계어로 변환한다. 인터프리터는 고레벨 언어를 중간 코드(intermediate code)로 변환하..
[Algorithm] 동적 계획법(Dynamic Programming)
·
Computer Science/Algorithm
동적 계획법(Dynamic Programming)이란 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 특정한 알고리즘이 아닌 하나의 문제 해결 패러다임으로 볼 수 있다. Dynamic Programming의 조건 분할 가능 큰 문제를 작은 문제로 나눌 수 있을 때 (Problem → Subproblems) 부분 문제 반복(Overlapping Subproblems) Subproblem들이 겹칠 때 → memoization을 통해 필요한 연산 수를 줄일 수 있음 최적 부분 구조(Optimal Substructure) Subproblems의 Solution으로 더 큰 규모의 Problem의 Solution을 구할 수 있을 때 대표 문제 : 피보나치 수열 Fibonacci 📌 Naive R..
[Java] JVM이란?
·
Java
Java Virtual Machine의 줄임말. JVM은 ‘자바를 실행하기 위한 가상 기계(컴퓨터)’이다. JVM은 2가지 기본 기능이 있다. 자바 프로그램이 어느 기기, 어느 운영체제 상에서도 실행될 수 있게 만들어 준다. -> WORA 자바 프로그램의 메모리를 효율적으로 관리 & 최적화해 준다. 💡 WORA WORA = Write Once, Run Anywhere ‘한 번 쓰고 모든 곳에서 실행한다’라는 뜻으로, 자바의 개발 철학이다. 자바는 WORA를 구현하기 위해 물리적인 머신과 별개의 가상 머신을 기반으로 동작하도록 설계되었다. 그래서 자바 바이트코드를 실행하고자 하는 모든 하드웨어에 JVM을 동작시킴으로써 자바 실행 코드를 변경하지 않고도 모든 종류의 하드웨어에서 동작되게 한 것이다. Java..
[Devops] Jenkins, Docker로 Spring Boot CI/CD 구축하기
·
CICD
👩‍💻 CI/CD 1️⃣ 구성 요소 Jenkins Server : AWS EC2 Ubuntu 18.04 Spring Boot Server : AWS EC2 Ubuntu 18.04 Github Repository Docker Hub Repository 2️⃣ 진행 순서 Jenkins Server에 Docker 설치 Jenkins Server에 Docker를 이용하여 Jenkins 실행 Jenkins 접속 Jenkins와 Github 연동 Jenkins와 Docker Hub 연결 Jenkins Server와 Spring Boot Server SSH 연결 설정 Jenkins와 Slack 연동 Jenkins Pipeline 구성 Spring Boot Project Github Repository Clone Gr..
[Tip] Gthub profile 꾸미기
·
Tip
밋밋한 깃허브 프로필 멋들어지게 꾸며보자! 1. 프로필용 Git Repository 만들기 👇 방법은 아래와 같다 GitHub will display your profile README on your profile page if all of the following are true. You've created a repository with a name that matches your GitHub username. The repository is public. The repository contains a file named README.md in its root. The README.md file contains any content.GitHub will display your profile READM..