Spring은 엔터프라이즈 애플리케이션 구축에 가장 널리 사용되는 Java 프레임워크 중 하나로, REST API부터 전체 규모의 마이크로서비스까지 모든 것을 개발할 수 있는 모듈식 포괄적인 에코시스템을 제공한다. Spring의 핵심 개념Inversion of Control (IoC) and Dependency Injection (DI)목적: 종속성의 생성 및 주입을 관리해 긴밀하게 결합된 코드의 필요성을 줄인다.예시: UserRepository에 의존하는 UserService, 여기서 Spring은 UserRepository를 UserService에 주입한다.준비: DI의 개념, 필드 주입을 위해 @Autowired를 사용하는 방법, @Component, @Service 및 @Repository 어노테..
J2EE는 대규모의 다계층 분산 애플리케이션을 쉽게 구축할 수 있도록 지원하는 사양 및 API 모음이다. J2EE의 핵심 구성 요소Servelets목적: HTTP 요청과 응답을 처리해 서버 측에서 동적 콘텐츠 생성을 가능하게 한다.예시: 로그인 요청을 처리하고, 자격 증명을 확인하고, 인증 결과에 따라 사용자를 리디렉션하는 LoginServelet.준비: 서블릿을 만들고, 요청 및 응답 개체를 처리하고, 세션을 관리하고, 사용자를 리디렉션하는 방법을 알고 있어야 한다.JavaServer Pages (JSP)목적: HTML 내에서 자바 코드를 삽입해 동적 웹 페이지 생성을 간소화한다.예시: 사용자 데이터를 기반으로 개인화된 대시 보드를 표시한 JSP 페이지.준비: JSP 구문, JSP의 수명 주기, 표현..
추상화는 사용자에게 구현 세부 사항을 숨기고 필수적인 특성만 노출하여 복잡한 시스템을 단순화하는 데 중점을 둔다. Abstract classes와 Interfaces 특정 구현을 강제하지 않고 동작을 정의함으로써 이를 용이하게 한다. Core PrinciplesInterfaces vs. Abstract Classes: 인터페이스는 동작을 정의하지 않고 계약을 지정하는 반면 (Java 8 이전), 추상 클래스는 부분적인 동작을 정의하고 공유 특성을 적용할 수 있다.Implementation Hiding: 추상화는 구현 세부 사항을 사용자에게 숨겨서 복잡성을 줄이고 코드 유지는 관리성을 향상시킨다.Advanced UsageAbstract Classes with Concrete Methods: 추상 클래스는 ..
Java를 통해 객체 지향 프로그래밍에 대해 알아보자. Encapsulation (캡슐화): 캡슐화는 데이터(필드/속성)와 해당 데이터에서 작동하는 메서드를 단일 단위 또는 클래스로 묶는 개념이다. 데이터의 무결성을 보호하기 위해 객체의 일부 구성 요소에 대한 직접 액세스를 제한한다. 하기 코드에서 balance는 BankAccount 클래스 안에 캡슐화되어 있다. deposit(), withdraw()와 getBalance() 메서드를 통해서만 액세스하거나 수정할 수 있다. 이는 잠재적으로 유해할 수 있는 직접적인 balance 조작을 방지한다.public class BankAccount { private double balance; // Private data member, not accessi..
다형성을 사용하면 객체를 실제 클래스가 아닌 부모 클래스의 인스턴스로 취급할 수 있다. 이를 통해 객체의 런타임 유형에 따라 실행되는 메서드가 달라지는 유연성과 동적 메서드 디스패치를 지원한다. Core PrinciplesDynamic Binding: 다형성을 사용하면 런타임에 실제 객체 유형에 따라 실행되는 메서드가 결정되는 지연 바인딩이 가능하다.Interfaces and Abstract Classes: 인터페이스와 추상 클래스는 다형성을 허용하여 여러 클래스가 공유 동작을 위한 공통 인터페이스를 제공할 수 있도록 한다.Advanced UsageMethod Overloading (Compile-time Polymorphism): 이름은 같지만 매개 변수가 다른 여러 메서드를 사용할 수 있어 유연성을 ..
OOP의 대표 개념 중 하나인 Encapsulation (캡슐화) 에 대해 알아보자. Conceptual Depth: 캡슐화는 단순히 데이터를 숨기는 것뿐만 아니라 객체의 내부 상태와 외부 세계 사이의 명확한 경계를 정의하는 것이기도 하다. 이러한 분리는 데이터 액세스 및 수정 방식에 제약을 가해 개체가 유효하고 일관된 상태를 유지하도록 한다.Access Modifier: private, protected, public, package-private(default) 수정자는 클래스 멤버의 접근성을 제어한다. 데이터 멤버를 private으로 유지하고 필요한 경우에만 getter 와 setter 메서드를 통해 액세스할 수 있도록 하는 구현이 대표적이다.Immutable Objects: 캡슐화된 클래스는 se..
Java에서 대소 비교 시에 가장 많이 쓰이는 method로 compareTo()와 compare()가 있고, 이 중 compareTo()를 살펴보겠다. compareTo()는 Comparable 인터페이스에 선언됐기 때문에 이를 사용하기 위해선 Comprable 인터페이스를 implements한 다음 Override를 해줘야한다. compareTo()와 compare()는 몇 가지 차이점을 보이는데 이 중 하나가 Parameter의 개수다. 두 method 모두 비교를 위해 두 개의 대상이 필요하지만 compareTo()는 하나의 parameter를 compare()는 두 개의 paramter를 받는다. 아래는 Java 내 존재하는 BigInteger와 유사한 기능을 하는 BigNumber라는 clas..
ADT(추상 자료형)은 직접적인 기능의 완성이 아닌 해당 자료형이 어떤 기능을 하는 것인지를 나타낸다. Stack을 예로 들면, Stack은 Last In First Out(LIFO) 방식으로 동작하지만, 이는 Array나 Linked List와 같은 자료 구조(Data Structure)를 선택적으로 활용해 구현될 수 있다. 또한 Stack의 size를 반환(return)하는 함수가 Stack의 첫 번째 원소부터 하나씩 숫자를 세는 것인지, 마지막 원소부터 세는 것인지, size 변수가 존재해 원소가 추가될 때 마다 기록한 값을 반환하는 것인지는 어떻게 구현을 하느냐에 따라 달라질 수 있다. 참고 - https://gbsb.tistory.com/306
Wikipedia definition(위키피디아 정의) :In object-oriented programming, a helper class is used to assist in providing some functionality, which isn't the main goal of the application or class in which it is used. An instance of a helper class is called a helper object (for example, in the delegation pattern). :객체 지향 프로그래밍에서 헬퍼 클래스는 어떤 기능을 제공하기 위해 사용되는 클래스로 어플리케이션이나 클래스의 주 목적으로 사용되는 것이 아니다. 헬퍼 클래스의 인스턴스는..
- Total
- Today
- Yesterday
- tf-idf
- 티스토리챌린지
- 오블완
- 투 포인터
- 이코노미스트 에스프레소
- The Economist
- 딕셔너리
- min heap
- socket programming
- DICTIONARY
- C++
- 안드로이드
- join
- 리트코드
- The Economist Espresso
- ml
- leetcode
- 파이썬
- 소켓 프로그래밍
- 이코노미스트
- vertex shader
- Hash Map
- machine learning
- I2C
- 머신 러닝
- Python
- defaultdict
- Android
- java
- Computer Graphics
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |