컴파일러에서 프로그램 코드를 기계어로 변환할 수 있는 시점은 2가지가 있다.👉 프로그램 실행 전 👉 프로그램 실행 중실행시점 전에 기계어로 변환 하는 컴파일러를 <span style="color: 실행중 기계어로 변환하는 컴파일러를 <span style=
예외처리 exception handling 1-1. 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해 오작동하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 발생시점에 따라 컴파일에러와 런타임에러로 나뉘는
내부 클래스(Inner class) 내부 클래스란, 클래스안의 또 다른 클래스를 말한다. 내부 클래스는 보통 두 클래스가 서로 긴밀한 관계가 있거나, 하나의 클래스또는 메소드에서만 사용되는 클래스일 때 이용되는 기법이라고 보면 된다. 그럼 내부 클래스는 왜 쓸까?
자바에서 멀티스레드를 이용하면 여러작업을 동시에 처리할 수 있기 때문에 작업효율이 좋아질 수도 있다. 하지만 하나의 공유자원을 여러 스레드에서 동시에 접근하여 사용하게 되면 때때로 우리가 예상치 못한 결과를 마주할 수 있다.쓰레드가 동시성으로 실행될 때 여러 쓰레드가
CPU/코어에서 실행중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것이다.기본적으로 1개의 프로세스는 1개의 스레드를 가진다. 왜냐면 스레드가 CPU/코어에서 실행되는 기본 단위이기 때문이다.프로세스가 다른 프로세스로 교체 된다는 것은, 프로세스 안에 실행되
배열은 인덱스를 이용해서 자료형이 같은 여러개의 데이터를 한번에 관리하는 것이다.\*\*① 배열은 <span style="background-color:int 배열은 int 값만 저장 가능하고, String 배열은 문자열만 저장한다. 또한 선언과 동시에 저장할 수
Java 에서 문자열을 다루를 대표적인 클래스로 String , StringBuffer, StringBuilder 가 있다. String String 클래스에는 문자열을 저장하기 위해서 문자형 배열 변수(char[]) value를 인스턴스 변수로 정의한다. Str
데이터를 모아서 관리할 수 있는 클래스를 컬렉션이라고 한다. 컬렉션은 그 타입에 따라 내부에 데이터를 저장하는 구조와 처리하는 방법이 다르다. 내부에서 처리하는 방법에 따라 데이터의 탐색이 빠른 경우가 있고, 추가/제거가 빠른 경우가 있다. 사용하는 컬렉션의 특성을 잘
데이터를 모아서 관리할 수 있는 클래스를 컬렉션이라고 한다. 컬렉션은 그 타입에 따라 내부에 데이터를 저장하는 구조와 처리하는 방법이 다르다. 내부에서 처리하는 방법에 따라 데이터의 탐색이 빠른 경우가 있고, 추가/제거가 빠른 경우가 있다. 사용하는 컬렉션의 특성을 잘
데이터를 모아서 관리할 수 있는 클래스를 컬렉션이라고 한다. 컬렉션은 그 타입에 따라 내부에 데이터를 저장하는 구조와 처리하는 방법이 다르다. 내부에서 처리하는 방법에 따라 데이터의 탐색이 빠른 경우가 있고, 추가/제거가 빠른 경우가 있다. 사용하는 컬렉션의 특성을 잘
List 저번에 배열에 관련한 글을 올렸었다. 배열은 크기가 고정되어있기 때문에 한계가 있는 자료형이다. 근데 난 천재가 아니라서 프로그래밍 중에 배열의 크기를 예측해서 생성할 수 없다. 이 문제를 타파하기 위해 List가 만들어졌다. List 는 메모리가 허용하는
Stack 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out)구조로 되어 있다. 삭제나 삽입시 맨 위에 데이터를 삽입하거나 삭제하기 때문에 시간복잡도는 늘 O(1) 의 시간복잡도를 가진다. 하지만 특정 데이터를 찾을 때는
상속보다 조합을 권장한다는 얘기가 있다.일단 우리가 상속을 쓰는 이유는 다음과 같다.코드의 재사용을 통해서 중복을 줄인다.확장성이 증가한다.클래스간의 계층적관계를 구성함으로써 다형성을 구현할 수 있다.개발 시간이 단축 된다.하지만 상속을 사용하면 생기는 문제점들이 있다
JDK1.5 에서 처음 도입된 제네릭스는 JKD1.8부터 도입된 람다식만큼 큰 변화였다. 이번 포스트는 제네릭의 정의와 개념정도만 살펴보려고 한다. 제네릭이란? 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 객체의
오늘 포스트는 제곧내, 자료구조와 알고리즘이 도대체 왜 중요한가에 대해 다룬다. 이 게시물에는 초짜 개발자의 생각을 기반으로 쓴 것이니 참고 바람. 자료구조란? 자, 일단 자료구조라는 것은 뭘까? 위키의 정의에 따르면, 자료구조란 효율적인 접근 및 수정을 가능케
라이브러리(Library)와 프레임워크(Framework)는 소프트웨어 개발에서 자주 사용되는 용어이다. 둘 다 우리의 개발인생을 윤택하게 하기위해 사용되지만, 이 둘에는 중요한 차이점이 있다. 컨트롤의 대상 제일 중요한 차이는 누가 누구를 컨트롤 하는가? 이다.
프로세스 & 쓰레드 프로세스란, 간단히 말해서 실행 중인 프로그램이다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원을 할당받아 프로세스가 된다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원
쓰레드의 우선순위, 데몬쓰레드
ConcurrentHashMap 요놈은 또 뭔지 차근차근 알아보자. Hashtable, HashMap Hashtable 클래스 Hashtable 클래스은 HashMap과 비슷한 Collection이지만, Thread-safe 한 특징이 있다. Thread-saf
TCP 와 UDP 의 차의를 알아보기 전에 TCP/IP 가 무엇인지 먼저 이해해보자. TCP/IP
개발자들이 제일 싫어하는 문서작업.. 하지만 프로젝트에는 수많은 api 가 있기 때문에 누군가는,,, 정리/관리를 해줘야 한다.🤦♀️그래서 Swagger 를 추천받아 쓰기로 했다!Swagger는 API 문서화를 쉽게 자동화 할 수 있도록 도와주고, 페이지에서 파라미
자바에서 데이터베이스로 쿼리문을 전송할 때, 사용할 수 있는 인터페이스 2가지가 존재한다. Statement와 PreparedStatement이다. SQL 실행 단계는 다음과 같이 이루어진다. 1) 쿼리 문장 분석 (Parsing) 2) 컴파일 (Compile) 3)