목록분류 전체보기 (131)
자바칩
자바 버전 체계에 대해서 알고 있는가? 자바 8이나 17을 많이 쓰는데 이유에 대해서 알고 있는가? - 버전은 자바를 쓰는 입장에서는 어떤 버전을 쓰는지는 좀 중요하다. 왜냐하면 버전에 따라 기능이 다르기도 하고 무엇보다 릴리즈 하는 쪽에서 이 버전에 따라서 유지보수 기간이 달라진다. 그래서 가능하면 이 버전 관련된 개념에 대해서는 알아두는 것이 좋다. 가끔 면접이 됐든 뭐가 됐든 보인이 해본 기술이라고 이제 이야기를 하면 왜 그걸 썼는지를 당연히 궁금하니까 물어본다. 그래서 지금 같은 경우 17을 썼다고 하면 왜 17을 쓰셨나요 라고 물어볼 수 있기 때문에 그럴 때 일단은 내가 쓰는 기술이 어떤 버전 관리를 하고 있고 어떤 기능들이 거기에 포함돼 있는지는 알고 쓰는게 좋다. 이 부분에 대해서 한번 보고..
기말고사 1. String 클래스와 StringBuilder, StringBuffer 클래스의 차이를 정리해 주세요.클래스차이점String불변성 객체이므로, + 연산을 하면 원본 객체는 버리고 새로운 객체를 리턴한다.StringBuilder가변성 객체이므로, append() 메소드를 통해 원본 객체를 변경할 수 있다. Thread Safe하지 않다.StirngBuffer가변성 객체이므로, append() 메소드를 통해 원본 객체를 변경할 수 있다. Thread Safe하다. 2. String 클래스의 indexOf(), substring(), split(), getBytes() 메소드가 어떤 용도로 사용되는지 정리해 주세요.메소드용도indexOf()문자열 내에서 매개 변수로 들어온 문자열이 시작하는 위..
// Use DBML to define your database structure// Docs: https://dbml.dbdiagram.io/docsTable user { user_id bigint [primary key] image_id bigint nickname varchar username varchar password varchar email varchar phone varchar birth varchar gender varchar role varchar created_at datetime updated_at datetime}Table artist { artist_id bigint [primary key] image_id bigint name varchar crea..
정리해 봅시다 1. TCP 통신과 UDP 통신의 차이는 무엇인가요?통신 방법차이점TCP- 상대 서버가 데이터를 받았는지를 확실히 보장 가능- 내부적으로 처리되는 절차가 매우 복잡하여 UDP보다 비싸고, 느리고, 무거움UDP- 상대 서버가 데이터를 받았는지 보장 불가능- 내부적으로 처리되는 절차가 덜 복잡하여 TCP보다 싸고, 빠르고, 가벼움 2. 네트워크 통신 시 포트 번호를 지정하는 이유는 무엇인가요?포트 번호를 지정한 곳에서만 통신할 수 있게 하기 위해서이다.일반적인 웹 애플리케이션에서는 80이라는 번호의 포트를 사용한다. 이것은 정해져 있는 것이다. 만약 99를 쓰고 싶다면, 웹 서버에 99번을 사용한다고 지정을 해 놓고, 사용자가 웹 서버에 붙기 위해서 주소 뒤에 콜론(:)을 붙인 뒤 99라고 ..
1. java.io.Serializable을 import하는 이유는 무엇인가요?객체를 파일에 읽거나 쓸 수 있도록 하거나, 다른 서버로 보내거나 받을 수 있도록 하려면 반드시 Serializable 인터페이스를 구현해야 한다. Serializable 인터페이스를 구현하면 JVM에서 해당 객체는 저장하거나 다른 서버로 전송할 수 있도록 해준다. 이 인터페이스는 java.io 패키지에 있으므로, java.io.Serializable을 import 해야 한다. 2. java.io.Serializable의 serialVersionUID를 지정하는 이유는 무엇인가요?각 서버에서 쉽게 해당 객체가 같은지 다른지를 확인하기 위해 serialVersionUID을 지정해야 한다. 클래스 이름이 같더라도, serial..
정리해 봅시다 1. I/O는 각각 무엇의 약자인가요?Input/OutputI/O는 JVM을 기준으로 읽을 때에는 Input을, 파일로 쓰거나 외부로 전송할 때에는 Output이라는 용어를 사용한다. 2. File 클래스는 파일만 지정할 수 있나요?파일뿐만 아니라, 파일의 경로도 지정할 수 있다. 3. OS마다 다른 경로 구분자를 처리하기 위해서는 File 클래스의 어떤 상수를 사용해야 하나요?separator (static 상수)*사용 예시1import java.io.File;String filePath1 = "C:\\godofjava\\text"; String filePath2 = File.separator + "godofjava" + File.separator + "text"; //..
정리해 봅시다 1. 쓰레드와 프로세스의 차이를 이야기해 보세요.클래스를 실행하면 적어도 하나의 JVM이 시작되고, 자바 프로세스가 시작한다. 이 프로세스 안에서는 여러개의 쓰레드들이 수행된다. 어떤 프로세스든 간에 쓰레드가 하나 이상 수행된다.*쓰레드를 만든 이유프로세스가 하나 시작하려면 많은 자원이 필요하다. 만약 하나의 작업을 동시에 수행하려고 할 때 여러 개의 프로세스를 띄워서 실행하면 각각 메모리를 할당해 주어야만 한다. JVM은 기본적으로 아무런 옵션 없이 실행하면 OS마다 다르지만, 적어도 32MB~64MB의 물리 메모리를 점유한다. 그에 반해서, 쓰레드를 하나 추가하면 1MB 이내의 메모리를 점유한다. 그래서, 쓰레드를 "경량 프로세스(lightweight process)"라고도 부른다.그리..
난이도: Gold 4문제: https://www.acmicpc.net/problem/16234 이 문제는 같은 영역끼리 묶어서 그 영역의 인구수의 평균만큼 이동을 시켜야 한다.처음에는 영역 체크를 boolean 배열로 만들어서 조건에 해당하면 전부 true로 체크하여서 모두 같은 영역으로 처리하여 문제를 풀었는데, 그렇게 하면 안되고 영역 체크를 int 배열을 만들어서 국경선으로 구별하여 각각 다른 영역으로 처리해주어야 한다. 말로만 보면 이해가 안될 것이다. 그림을 보자. 초기 배열은 이렇다. 처음에는 국경선을 먼저 열어야 한다.국경선을 여는 조건은 인접한 칸(상, 하, 좌, 우)과의 인구 차이가 10명 이상 50명 이하일 경우이다. 인접한 칸과의 인구 차이가 10명 이상 50명 이하일 경우, 국경..