Enum이란?Enum은 Java 5(JDK 1.5)부터 도입된 기능으로, 서로 관련된 상수들의 집합을 타입 안전하게 정의할 수 있는 특별한 클래스다. Java 5 이전에는 상수를 정의할 때 public static final 필드를 사용했지만, 이 방식은 타입 안정성이 보장되지 않았다. // Java 5 이전 방식public class OrderStatus { public static final int PENDING = 0; public static final int COMPLETED = 1; public static final int CANCELLED = 2;}// Java 5 이후 Enum 방식public enum OrderStatus { PENDING, COMPLETED, CA..
우아한테크코스 8기 프리코스에 참여하며 아래와 같은 글을 읽을 수 있었다. https://martinfowler.com/bliki/GetterEradicator.html bliki: Getter EradicatorFocusing on eliminating getters from a class often misses the true point of encapsulation.martinfowler.com https://tecoble.techcourse.co.kr/post/2020-04-28-ask-instead-of-getter/ getter를 사용하는 대신 객체에 메시지를 보내자getter는 멤버변수의 값을 호출하는 메소드이고, setter는 멤버변수의 값을 변경시키는 메소드이다. 자바 빈 설계 규약에 따..
1. 정규표현식이 왜 필요할까?개발을 하다보면 사용자의 입력을 검증해야하는 순간이 온다. 그 형식은 다양하다. 전화번호 형식이라든지, 이메일 형식이라든지. 예를 들면 아래와 같다. 아래와 같이 4가지 형식의 전화번호가 있다고 가정해보자. 이 전화번호들을 검증하려면 어떻게 해야할까?String phoneNumber1 = "010-1234-5678";String phoneNumber2 = "010-123-5678"; // 가운데 숫자가 3자리이다.String phoneNumber3 = "abc-defg-hijk"; // 숫자가 아닌 영어로 이루어져 있다.String phoneNumber4 = "01012345678"; // "-"가 입력되지 않았다. 단순하게 생각했을 때, String의 contains() ..
백엔드 개발을 주로 하는 나로써는 매일 자바 언어를 마주친다. 그런데 어느날 문득 이런 생각이 들었다. 자바로 작성된 코드는 어떻게 실행되는거지? 그 안에 어떤 과정이 있는거지?🤔 해당 의문을 해결하고자 JVM 동작 과정을 샅샅히 파헤쳐보기로 했다. 1. JVM이란?(1) 정의JVM은 Java Virtual Machine의 약자로 Java로 작성된 프로그램이 어느 기기나 운영체제 상에서도 실행될 수 있도록 한다. (2) 실행 과정 1) 자바 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당 받는다.2) 자바 컴파일러(javac)가 자바 소스코드(.java)를 자바 바이트 코드(.class)로 변환시킨다.3) 변경된 .class 파일들을 클래스 로더를 통해 JVM 메모리 영역(Runtime Data..