전체 글

·Language/Java
String 클래스에서 제공하는 메서드는 무엇이 있을까?      String 클래스 --문자열을 다루기 위한 대표적인 클래스로,문자열을 다룰 때 불변(immutable)성과 메모리 효율성을 제공하며, 다양한 편의 메서드를 제공한다. 불변(immutable)?말 그대로 한 번 생성된 문자열 객체는 해당 값을 변경할 수 없다.String 타입의 문자열 수정이 가능하던데?외관상으로는 수정이 되는 것 처럼 보이지만사실 새로운 String 타입의 객체를 새로 생성하고 이를 사용하도록 변경한 것이다.기존에 사용하던 String 타입의 객체는 GC로 인해 제거된다.String str1 = "Hello";str1 = "world";str1 = "Hello" + str1;// str1은 "Hello"에서 "world"..
·Language/Java
Object 클래스는 무엇이며, 어떤 메서드를 제공할까?      Object 클래스 --Object 클래스는모든 java 클래스의 최상위 부모 클래스로상속을 정의하지 않은 모든 클래스는 자동으로 Object 클래스를 상속받도록 설계되어 있다.(다른 클래스를 상속받더라도 계속 해당 부모 클래스로 올라가 보면 Object 클래스를 상속받고 있다.) 그래서 모든 클래스(객체)는 Object 클래스에서 제공하는 메서드를 사용할 수 있다. Object 클래스에는 멤버변수는 없고 오직 11개의 메서드만 가지고 있다.  메서드 종류--    equals(Object obj) --두 객체가 같은지 비교하는 메서드로, 같은 참조를 하고 있는지 비교한다.(두 객체가 같은 곳을 가리키고 있는가?) 기본 형식객체A.equa..
·Terminology
싱글톤 패턴은 무엇인가?      싱글톤 패턴 (Singleton) --싱글톤 패턴은하나의 클래스는 오직 하나의 객체(인스턴스)만 생성하고, 해당 객체에는 누구나(전역적) 접근이 가능하도록 보장한다.원래는 하나의 클래스로 여러 객체를 생성할 수 있지만, 그렇게 하지 않고 단 하나의 객체만 생성하고,해당 객체를 기반으로 로직을 구성하기 위해 사용하는 패턴이다. 주로 자원 관리가 필요한 경우(DB 연결, 설정 관리 등)에해당 데이터를 관리하는 객체 하나만 생성하여 여러 곳에서 공유하여 사용할 때 유용하다. 간단하게 생각하면여러 곳에서 공통으로 사용할 데이터를 관리하는 객체를 하나 만드는 것이다. 장단점객체를 생성하는 비용이 줄어든다.의존성이 높아진다.주로 단위 테스트를 하는 TDD 할 때 걸림돌이 된다.(단..
·Language/Java
java.lang 패키지는 무엇이며, 무엇을 제공할까?      java.lang 패키지 --자바 프로그래밍을 할 때다른 패키지에 존재하는 클래스를 가져다 사용하기 위해서는"import" 키워드를 사용하여 사용하고 싶은 클래스가 위치하는 패키지를 불러와서 사용할 수 있지만 java.lang 패키지는자바 언어에서 가장 기본적이고 필수적인 클래스와 인터페이스들을 제공하는 패키지로,별도로 "import" 키워드를 사용하지 않아도 바로 사용할 수 있도록 설계되어 있다.--    java.lang 패키지에 포함된 주요 클래스와 기능 --1.  Object 클래스모든 Java 클래스의 "최상위 부모 클래스"로, 클래스를 통해 생성한 객체에 사용할 수 있는 기본적인 메서드를 제공한다. 주요 메서드toString() ..
·Terminology
디자인 패턴은 무엇이며 어떤 것들이 있을까?      디자인 패턴 (Design Pattern) --디자인 패턴은소프트웨어 설계에서 자주 발생하는 문제들을 해결하기 위한 일종의 "표준화된 해결 방법"이다.(프로그램을 설계할 때 발생했던 문제점들을 특정 방법을 통해 해결할 수 있도록 하나의 "규약", "템플릿" 형태)  특징주로 객체지향 프로그래밍에서 사용한다.코드를 더욱 유지보수하기 쉽고, 확장 가능하게 만든다.주로 객체 생성, 구조 설계, 객체 간 상호작용 등을 효과적으로 처리하는 방법이 있다.다른 개발자들과 더욱 쉽게 소통이 가능해지며, 시스템을 이해하는 데 도움을 준다.즉, 프로그램 구조를 체계적이고 재사용 가능하게 만들며, 개발자들과 소통하기 편리해진다. 디자인 패턴을 사용하면 왜 소통이 편리해지..
·Terminology
DI는 무엇이고 어떻게 구현하는 것일까?      의존성 (의존 관계, Dependency) --의존성은객체 지향 프로그래밍에서한 객체가 다른 객체에 대해 얼마나 의존적인지를 나타내는 개념이다. class A { int a = 10; public void test() { System.out.println(a); }}class B { A aaa = new A(); aaa.test();} 위 코드를 보면B 클래스 내부에서 A 클래스의 객체를 직접 생성하여 사용하는 구조로B 클래스는 A 클래스에 의존하고 있는 형태가 된다.A 클래스의 내용이 변하면 B 클래스도 이에 따라 변하게 되는 것이다. 즉, 의존 관계라는 것은B가 A를 의존하고 있을 때, A가 변하면 B에도..
·Terminology
SOLID 원칙은 무엇이며, 왜 지켜야 하는가?      SOLID 원칙 --SOLID는객체 지향 프로그래밍에서 유지보수성과 확장성이 좋은 소프트웨어를 설계하기 위한 5가지 원칙의 약자다. SOLID 종류SRP  :  단일 책임 원칙OCP  :  개방 폐쇄 원칙LSP  :  리스코프 치환 원칙ISP  :  인터페이스 분리 원칙DIP  :  의존 역전 원칙 SOLID의 목적소프트웨어의 품질을 높임코드의 유연성과 재사용성을 증가 시킴복잡성을 제거하여 리팩토링에 소요되는 시간 줄임개발의 생산성 증가 SOLID 개념은OOP의 특징인 "캡슐화", "추상화", "다형성", "상속" 등의 개념들을 다시 재정의한 원칙으로 생각하면 된다.그래서 프로젝트에 SOLID의 원칙을 모두 적용해야 할 필요가 없으며, 상황에 따라..
·Terminology
OOP는 무엇일까?      객체지향 프로그래밍 (OOP) --OOP는말 그대로 "객체" 지향적인 프로그래밍을 의미하는데이는 프로그램을 "객체(Object)"의 집합으로 보는 방식이다.즉, 각 객체들이 서로 상호작용하는 구조로 동작을 수행하게 된다. 간단하게 설명하자면전체적으로 수행할 동작들 중에서 각 역할에 알맞게 "객체(클래스)"를 여러 공간에 분리하고프로그램을 동작할 때는 특정 동작에 필요한 객체들을 원하는 순서대로 불러다가 동작시켜 프로그램의 동작을 완수하는 것이다. 즉, 각 역할(동작)을 수행할 모듈들을 먼저 설계한 다음 해당 모듈들을 가지고 실행할 흐름을 짜서 동작시키는 방식이다. 비유를 하자면각각의 도구와 재료(인스턴스 변수)를 가지고 자신이 맡은 역할(메서드)만 수행하는 여러 요리사(객체)..
아-니지
성장 기록.zip