본문 바로가기

전체 글130

[Java] 자바 Enum 클래스 사용법 정리 Enum 이란? Enum은 열거형(enumrated type)이라고 부르며, 서로 연관된 데이터를 가진 상수들의 집합을 관리해주는 클래스입니다. public enum Day { 월, 화, 수, 목, 금, 토, 일 } Enum을 사용하면 다음과 같은 장점이 있습니다. Enum의 열거체를 비교할 때, 값뿐만 아니라 타입까지 체크하기 때문에 안정적입니다. 깔끔한 코드 작성이 가능합니다. 열거체를 값이 변경되더라도 다시 컴파일할 필요가 없습니다. Enum 사용법 제가 생각하는 Enum의 가장 큰 장점은 열거체에 원하는 상수값을 명시할 수 있기 때문에, 값을 전달할 때 상수값이 무엇인지 신경 쓰지 않아도 된다는 것입니다. 아래의 코드를 보겠습니다. public enum Day { 월(1), 화(2), 수(3), .. 2022. 3. 18.
[Java] Setter를 사용할 때 주의할 점(Feat. 불변객체) 자바(Java)를 사용해서 애플리케이션을 개발할 때, 대부분의 개발자는 객체를 사용합니다. 그 객체 안에는 여러 가지 메서드가 존재하지만 대표적으로 Getter와 Setter가 있습니다. Getter는 값을 얻기 위해서 필수적이지만 Setter는 필수적이지는 않습니다. 그 이유는 생성자가 있기 때문입니다. 하지만 많은 개발자들이 Setter의 편리함 때문에 많이 사용하곤 합니다. 이번 포스팅에서는 Setter를 사용할 때 주의할 점에 대해 알아보도록 하겠습니다. 기본형 vs 참조형 자바에는 대표적으로 두가지 변수가 존재합니다. 바로 기본형과 참조형입니다. 기본형과 참조형의 가장 큰 차이점은 변수를 저장하는 방법에 차이가 있습니다. 2021.01.05 - [Programming/Java] - 자바 기본형과.. 2022. 3. 17.
[Java] 자바 환경변수 설정하기 자바 환경변수 설정 자바를 처음 설치했을 때, OS가 JDK를 참조할 수 있도록 그 경로들을 환경변수로 설정해야 합니다. 자바 환경변수는 아래의 순서에 따라 설정합니다. JAVA_HOME 등록 CLASS_PATH 등록 bin폴더 Path 등록 확인 JAVA_HOME 등록 1. 설정 클릭 2. 설정 > 시스템 3. 설정 > 시스템 > 정보 4. 설정 > 시스템 > 정보 > 고급 시스템 설정 5. 설정 > 시스템 > 정보 > 고급 시스템 설정 > 환경 변수 6. 시스템 변수 새로 만들기 클릭 7. 변수 이름 : JAVA_HOME , 변수 값 : C:\Program Files\Java\jdk1.8.0_251 (자신의 자바 설치 경로) CLASS_PATH 등록 1. 새로 만들기 클릭 2. 변수 이름 : CLAS.. 2022. 3. 16.
[Network] 3-way handshake, 4-way handshake의 개념 및 동작 원리 OSI 7 계층과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜인 TCP과 UDP의 가장 큰 차이점은 신뢰성에 있습니다. TCP는 3-way handshake와 4-way handshake를 통해 신뢰성을 구축하여 클라이언트와 서버를 연결하여 데이터를 보내고 UDP는 오직 데이터만을 빠르게 보내어 신속성을 보장합니다. 이번 포스팅에서는 3-way handshake와 4-way handshake의 개념 및 동작원리에 대해 살펴보겠습니다. 3-way handshake 3-way handshake는 세션을 연결하기 위해서 3번의 일련의 과정을 통해서 수행됩니다. 클라이언트는 서버에게 연결을 요청하겠다는 요청(SYN) 패킷을 보냅니다. 이때 클라이언트는 서버에 SYN+ACK 응답을 기다리는 SYN-SENT .. 2022. 3. 13.
세션(Session), 쿠키(Cookie), JWT(JSON Web Token) 의 개념 및 차이점 웹 개발을 할 때 세션과 쿠키를 사용하는 이유는 무엇일까요? 세션과 쿠키를 사용하는 이유는 아래와 같은 HTTP 프로토콜의 두 가지 특성(Connectionless, Stateless)에서부터 시작됩니다. 1. Connectionless(비연결성) HTTP 프로토콜은 인터넷상에서 데이터를 주고 받기위한 서버/클라이언트 모델을 사용합니다. 클라이언트는 request를 보내고 서버는 요청을 처리하여 response를 보내게 되는데 response를 받은 클라이언트는 연결 상태가 유지되지 않고 끊어버립니다. 이러한 작동방식은 많은 사용자들의 요청을 처리하기 위해 적합합니다. 2. Stateless(비상태성) 서버는 한번 끊어진 클라이언트의 상태 정보를 저장하지 않습니다. 따라서 어떠한 클라이언트의 상태정보를 .. 2022. 3. 12.
[백준 알고리즘][자바] 2750번 : 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2022.01.22 - [Algorithm/Theory] - [자바] 단순 선택 정렬과 단순 삽입 정렬 [자바] 단순 선택 정렬과 단순 삽입 정렬 단순 선택 정렬 단순 선택 정렬이란 배열중 가장 작은 요소를 선택해 알맞은 위치로 옮겨서 정렬하는 단순한 알고리즘입니다. 아래의 배열에서 가장 작은 요소인 1을 선택해 첫 번째 위치인 6과 hyunipad.tistory.com import java.io.Buff.. 2022. 3. 8.
[백준 알고리즘][자바] 1436번 : 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) thro.. 2022. 3. 6.
[백준 알고리즘][자바] 1018번 : 체스판 다시 칠하기 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 브루트 포스의 문제입니다. 브루트 포스는 모든 경우의 수를 검사한다는 부분은 간단하지만, 어떤 경우의 수를 검사하는지가 어려운 거 같습니다. 문제 속에 힌트가 있었습니다. 8x8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 8x8 크기의 체스판으로 잘라낼 때, 잘라낼 8x8의 첫 시작 정사각형을 기준으로 살펴보면 규칙이 눈에 보입니다. 예제 입력을 보면서 .. 2022. 3. 5.
[자바] 셸 정렬(Shell Sort) 셸 정렬 셸 정렬은 단순 삽입 정렬을 보완하여 좀 더 빠르게 정렬하는 알고리즘입니다. 단순 삽입 정렬은 아래의 포스팅을 참고해주시길 바랍니다. 2022.01.22 - [Algorithm/Theory] - [자바] 단순 선택 정렬과 단순 삽입 정렬 [자바] 단순 선택 정렬과 단순 삽입 정렬 단순 선택 정렬 단순 선택 정렬이란 배열중 가장 작은 요소를 선택해 알맞은 위치로 옮겨서 정렬하는 단순한 알고리즘입니다. 아래의 배열에서 가장 작은 요소인 1을 선택해 첫 번째 위치인 6과 hyunipad.tistory.com 아래는 단순 삽입 정렬을 장점과 단점입니다. 정렬을 마쳤거나 정렬을 마친 상태에 가까우면 정렬 속도가 빠릅니다.(장점) 삽입할 위치가 멀리 떨어져 있으면 이동해야 하는 횟수가 많아집니다.(단점) .. 2022. 1. 27.
반응형