WORA란 무엇인가? Write once, run anywhere(WORA), 또는 Write once, run everywhere (WORE)은 말 그대로 한 번 작성한 코드를 OS에 종속적이지 않고 어디서든 실행시킬 수 있다는 Java의 특징이다. Sun Microsystems (현 Oracle 소속)에서 Java 언어의 장점을 어필하기 위해 슬로건으로 내세웠다. 즉 Java 프로그램은 어디서든 개발이 가능하고, 어느 디바이스에서도 표준 바이트코드로 컴파일이 되고 JVM이 탑재되어있는 기기라면 어디서든 실행가능하다는 것이 WORA의 본 의미였다. 예를 들면 개발자가 PC에서 개발한 코드를 JVM이 있는 핸드폰, 라우터, 메인프레임 서버 등 여러 곳에서 실행시키는 것이다. (이런 아이디어는 1960년대..

다루는 내용 1. JVM이란 무엇인가 2. JVM의 구성요소 JVM이란 무엇인가 Java Virtual Machine (JVM)은 Java 또는 다른 언어들로 작성된 프로그램을 실행할 수 있도록 하는 가상머신이다. Java는 WORA(Write Once Run Anywhere: 한번 작성된 코드를 수정없이 어디서든 실행할 수 있다) 하도록 설계된 언어인데, 환경과 관계없이 실행될 수 있도록 하드웨어 위에 JVM이라는 가상머신이 있는 것이다. (Java는 정말 WORA할까?) JVM은 Java를 비롯한 여러 프로그래밍 언어(Kotlin, Groovy, 등)로 작성된 바이트코드를 해석하고 실행한다. (바이트코드란 무엇인가) JVM 구성요소 1) 클래스로더 2) 런타임데이터 영역 3) 실행엔진 클래스로더 클래..

1. 탄생배경 연결리스트에 대한 첫 언급은 1955-1956년에 개발된 IPL이라는 언어의 기본 자료구조로 등장한다. 이 IPL은 복잡한 수식을 증명하는 용도로 개발이 되었는데 간단히 설명하자면 이 언어에서 사용되는 변수들의 계층을 나누기 위해서 사용된 것으로 보인다. 어떤 변수들은 그 스코프가 전역적이고 또 어떤 특정 변수들은 스코프가 내부적으로 이루어져 있는데 이 각 값들을 어떤 변수의 이름으로 접근할 수 있도록 연결 리스트가 사용되었다고 한다. 2. 연결 리스트란 무엇인가? 정의: 한 줄로 연결되어 있는 방식으로 어떤 데이터 덩어리(이하 노드Node)를 저장할 때 그 다음 순서의 자료가 있는 위치를 데이터에 포함시키는 방식으로 자료를 저장한다. 즉 리스트의 순서가 메모리에서의 실제 저장 위치에서는 ..

1. 탄생 배경 배열은 가장 오래된 자료구조 중 하나로써 특정 탄생 시기나 배경에 대한 정확한 기록을 찾기 어려웠다. 추정컨대 배열이라는 개념을 어느 시점에 누가 처음으로 만들어내서 지금까지 쓰고 있다기 보다는 이전부터 일렬로 데이터를 저장해서 읽고 쓰는 것이 매우 기초적인 행위이기 때문에 배경을 찾는 의미가 없는 건 아닐까 싶다. 저장장치가 생기기 전의 컴퓨터에서 사용한 테이프 (magnetic tape나 구멍 뚫린 종이 테이프)도 아주 넓은 의미에서 배열의 범주 안에 들어간다고도 할 수 있지 않을까? 그만큼 일렬로 데이터를 저장하는 방식은 매우 보편적인 아이디어 같다. 다만 direct access가 가능한 배열은 컴퓨터 하드웨어에 내장 메모리가 등장하기 시작하면서 우리가 현재 아는 배열의 개념이 정..
이번 글에서 정리하는 내용: 1. Boxing, unboxing, auto-boxing, auto-unboxing 2. Wrapper은 왜 생긴 걸까? 3. OOP를 추구하는 자바 언어 에선 Wrapper 클래스가 있는데 그럼 왜 primitive 자료형이 있는걸까? 2학년 시절 객체라는 개념이 잡히지 않았을 때 대충 같은거겠지 하면서 Wrapper, Primitive 구분하지 않고 막 썼다. 그러다가 여러차례 자바로 프로젝트를 하면서 객체란 대충 이런 구조로 작동하는구나 경험적으로 알아가던 중 평소엔 별 생각없이 넘어가던 부분이 매우 낯설게 보였다. Integer instInt = 1; 이게 도대체 왜 되는거지? Integer은 Object인데 왜 new를 하지 않고도 사용할 수 있는걸까? 궁금증을 풀..

programmers.co.kr/learn/courses/30/parts/17046 프로그래머스 온라인 시험 감독 서비스 모니토. 부정행위 걱정 없이 온라인 시험을 운영, 감독하세요. 응시자의 실물과 컴퓨터 화면을 동시에 감독하며 공정하고 투명한 온라인 시험을 운영할 수 있습니다. programmers.co.kr 1. 없어진 기록찾기 SELECT B.ANIMAL_ID, B.NAME FROM ANIMAL_INS AS A RIGHT JOIN ANIMAL_OUTS AS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE A.ANIMAL_ID IS NULL ORDER BY ANIMAL_ID NOTE) 집합 개념으로 JOIN 생각해서 풀기. 참고 자료: 2. 있었는데요 없었습니다 SELECT A.A..
programmers.co.kr/learn/courses/30/parts/17042 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 모든 레코드 조회하기 SELECT * FROM ANIMAL_INS ORDER BY (ANIMAL_ID) 2. 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC - order by는 항상 뒤에 - asc, desc 3. 아픈 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = ..
문제출처 : programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 풀이법: 1) Max Heap, Min Heap을 하나 씩 만든다. 2) Insert 할 때는 Max Heap, Min Heap 두 개에 모두 넣는다. 3) 이 두 힙의 내용물을 일치 시키는게 문제의 핵심이다. 해시맵 visited를 만들어서 'D' 명령어를 만날 때 처음 push 하는 값이 나올때 까지 각 max, min 힙에서 push 하게 한다. 구분 하는 법은 처음 입력의 index로 고유식별자(?) 를 붙여서 큐에 insert 하면 된다. 해쉬맵에선 이 index를 저장하고. Comment: 1) 풀이법을 쉽게 생각해낼 수 있었다...
- Total
- Today
- Yesterday
- Kakao Blind
- zipkin
- 2020 KAKAO
- Spring
- nginx 내부
- jvm
- 프로그래밍 모델
- 카카오
- spring cloud sleuth
- IOC
- Java
- 디자인패턴
- 신규 아이디 추천
- WORE
- behavior parameterization
- Java #GC #가비지콜렉터 #Garbage Collector
- 2019 Kakao Blind
- Java #JIT #JVM
- 스프링
- 코테
- 2021
- KAKAO 2021
- 모던 자바 인 액션
- decorator
- 카카오코테
- WORA
- okhttp3
- 카카오 인턴
- PatternSyntaxException
- 카카오 코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |