JAVA56 [동적 컴파일] 자바 동적 컴파일러 public class DynamicCompiler { public static void main(String[] args) { String sourceCode = "public class HelloWorld {" + " public void sayHello() {" + " System.out.println(\"Hello, World!\");" + // 누락된 세미콜론 추가 " }" + "}"; try { // 컴파일된 클래스를 메모리에 저장하기 위한 임시 경로 File tempDir = new File(System... 2024. 12. 18. [Java] 객체지향 5원칙 SRP (Single Responsibility Principle) - 단일 책임 원칙각 클래스는 단 하나의 책임만 가져야 합니다. 즉, 하나의 클래스는 하나의 기능만 수행하며, 이를 변경할 이유도 하나여야 합니다.장점: 코드 변경이 필요한 경우 해당 클래스만 수정하면 되므로 수정이 용이합니다.OCP (Open/Closed Principle) - 개방-폐쇄 원칙클래스는 확장에는 열려 있어야 하지만, 수정에는 닫혀 있어야 합니다. 즉, 기능을 추가할 수는 있지만, 기존의 코드를 변경하지 않도록 설계해야 합니다.장점: 시스템의 기능 확장 시 기존 코드를 건드리지 않으므로 버그 발생 확률을 줄입니다.LSP (Liskov Substitution Principle) - 리스코프 치환 원칙서브타입은 언제나 기반 타.. 2024. 11. 11. [Java] 객체지향 4요소 1. 추상화 (Abstraction)추상화는 복잡한 시스템에서 필요한 정보만 표현하고, 불필요한 세부 사항은 숨기는 것입니다.예를 들어, 자동차 클래스에서는 자동차가 움직이는 방식과 같은 기능만 정의하고, 엔진의 내부 작동 원리와 같은 세부 사항은 숨기는 것이 추상화입니다.장점: 시스템의 복잡성을 줄이고, 필요한 핵심적인 정보에만 집중할 수 있습니다.2. 캡슐화 (Encapsulation)캡슐화는 객체의 속성과 메서드를 하나로 묶고, 외부에서 접근할 수 없도록 보호하는 것입니다.이를 통해 객체의 내부 구현을 감추고, 외부에서는 필요한 인터페이스만을 제공합니다.예를 들어, 클래스의 필드를 private로 선언하고, 접근을 위해 getter와 setter 메서드를 제공하는 방식이 있습니다.장점: 데이터를 외.. 2024. 11. 11. [JAVA] Date 타입 Date 타입에 알고있는 내용들을 정리하려다 보니... 밑에 블로그보다 잘쓸 자신이 없어 링크로 대체합니다. https://d2.naver.com/helloworld/645609 2024. 11. 8. [Java] 한글 자소분리 한글 검색을 할때 초성만으로 완성된 음절을 사용해야 되는 경우가 있을수 있다. 다음은 예시 화면이다. 다음에 유니코드 표를 참조하면 아래와 같은 코드를 생성 가능하다 public class KoreanDecomposer { public static void main(String[] args) { String text = "초성테스트"; for (char ch : text.toCharArray()) { System.out.println(decompose(ch)); } } public static String decompose(char ch) { // 유니코드 상에서 한글 초성, 중성, 종성의 시작 위치 .. 2024. 11. 8. [Java] Record 기존 자바에서 사용되는 Vo, Dto 등을 대체하기 위해 나온 클래스이다. getter를 자동으로 생성되며 불변 객체인것이 특징이다. 대부분 프로젝트에서 사용되는 mybatis등 기능등과 연동이 어려울것으로 보여 과연 사용될지는 .... 개인 프로젝트에서 불변객체 사용하는 경우에는 대체해볼법 하다. Record 자세한 내용은 아래에서 참고해볼수 있다. Java 14부터 프리뷰 기능으로 소개된 `Record`는 Java 16에서 정식으로 도입된 데이터 클래스로, 불변 객체를 더욱 쉽게 정의할 수 있도록 설계되었습니다. `Record`를 사용하면 필드 정의와 `getter`, `equals`, `hashCode`, `toString` 메서드를 자동으로 생성하여 개발자의 반복 작업을 줄여줍니다. 다음.. 2024. 10. 30. 이전 1 2 3 4 ··· 10 다음