본문 바로가기

JAVA

(18)
[JAVA]원시 타입(primitive type)과 래퍼 클래스(wrapper class) 주요 차이점원시 타입 (Primitive type)과 래퍼 클래스 (Wrapper class)int와 float은 Java의 원시 타입(primitive type)입니다. 메모리에서 더 가볍고, 직접 값만 저장합니다.Integer와 Float은 원시 타입을 감싸는 래퍼 클래스입니다. Java에서 객체로 다루어질 수 있으며, 컬렉션 프레임워크(List, Set 등)에 사용될 수 있습니다.기본 값int와 float의 기본값은 각각 0과 0.0f입니다.Integer와 Float의 기본값은 null일 수 있습니다. (객체이므로 초기화되지 않으면 null을 가질 수 있습니다.)메서드 제공 여부Integer와 Float은 클래스이므로 다양한 유틸리티 메서드(parseInt(), toString(), compare(..
[JAVA] 메서드, 생성자, 클래스, 필드, 객체, 매개변수(Parameter), 인자(Argument), 리턴 타입 1. 메서드 (Method)정의: 클래스 안에서 특정 작업을 수행하는 코드 블록입니다.역할: 객체가 수행할 수 있는 행동이나 동작을 정의합니다. 예를 들어, 데이터를 처리하거나 특정 기능을 수행할 때 사용됩니다.구성요소:메서드 이름: 메서드가 호출될 때 사용됩니다.매개변수(인자): 메서드가 호출될 때 전달받는 값(옵션).반환 타입: 메서드가 리턴하는 값의 타입. 반환값이 없으면 void로 선언합니다.예시:public int add(int a, int b) { return a + b;}2. 생성자 (Constructor)정의: 객체가 생성될 때 호출되는 특수한 메서드로, 객체의 초기화를 담당합니다.특징:생성자의 이름은 클래스 이름과 동일해야 합니다.반환 타입이 없으며, void를 명시하지 않습니다.기..
자바 Generic 자바 제네릭(Generic)자바의 제네릭은 클래스나 메서드에서 사용할 데이터 타입을 미리 정의하지 않고, 나중에 사용할 때 타입을 지정할 수 있도록 하는 기능입니다. 이를 통해 타입 안정성을 높이고 코드의 재사용성을 향상시킬 수 있습니다.1. 장점타입 안전성: 제네릭을 사용하면 컴파일 시점에서 타입을 검사하므로, 런타임 시 발생할 수 있는 ClassCastException과 같은 타입 에러를 미연에 방지할 수 있습니다.코드 재사용성: 제네릭은 동일한 코드 구조를 유지하면서 여러 타입에 대해 동작하는 코드를 작성할 수 있습니다. 예를 들어, 제네릭 리스트는 다양한 타입의 데이터를 처리할 수 있습니다.가독성 향상: 명시적인 타입 정의를 통해 코드를 읽는 사람이 데이터의 타입을 쉽게 파악할 수 있습니다.컴파일..
HTTP Protocol HTTP(Hyper Text Transfer Protocol)로 RFC 2616에서 규정된 Web에서 데이터를 주고 받는 프로토콜. 이름에는 하이퍼텍스트 전송용 프로토콜로 정의되어 있지만 실제로는 HTML, XML, JSON, Image, Voice, Video, Javascript, PDF 등 다양한 컴퓨터에서 다룰 수 있는 것은 모두 전송 할 수 있다. 또한 HTTP는 TCP를 기반으로 한 REST의 특징을 모두 구현하고 있는 Web 기반의 프로토콜이다. HTTP는 메시지를 주고(Request) 받는(Response) 형태의 통신 방법이다. 클라이언트는 서버에 요청을 하고 서버는 요청을 받는다. HTTP의 요청을 특정하는 Method는 8가지가 있다. REST를 구현하기 위한 인터페이스이니 알아둬야 ..
URI 설계 패턴 1. URI (Unifrom Resource Identifier) 인터넷에서 특정 자원을 나타내는 주소 값. 해당 값은 유일 하다.(응답은 달라질 수 있다.) 2. URL(Uniform Resource Locator) 인터넷 상에서의 자원, 특정 파일이 어디에 위치하는지 식별 하는 주소. URL은 URI의 하위 개념 입니다. URI 설계 원칙 1. 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용한다. 2. URI 마지막 문자로 (/)는 포함하지 않는다. 3. 하이픈(-)은 URL 가독성을 높이는데 사용한다. 4. 밑줄(_)은 사용하지 않는다. 5. URI 경로에는 소문자가 적합하다. 6. 파일 확장자는 URI에 포함하지 않는다. 7. 프로그래밍 언어에 의존적인 확장자를 사용하지 않는다. 8. 구현에 ..
REST API REST(Respresentational State Transfer: 자원의 상태 전달) - 네트워크 아키텍처 1. Client, Server: 클라이언트와 서버가 독립적으로 분리 되어 있어야 한다. 2. Stateless: 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다. 3. Cache: 클라이언트는 서버의 응답을 Cache(임시저장) 할 수 있어야 한다. 클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 한다. 이를 통해서 서버의 부하를 낮춘다. 4. 계층화( Layered System): 서버와 클라이언트 사이에, 방화벽, 게이트웨이, Proxy 등 다양한 계층 형태로 구성이 가능해야 하며, 이를 확장 할 수 있어야 한다. 5. 인터페이스 일관성: 인터페이스의 일관성을 지키고, ..
웹 개발이란? Web이란 (World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다. Web의 용도는 다양하게 나눌 수 있습니다. Web site ex)google, naver, daum, facebook 등 HTML로 구성된 여러 사이트들을 접근하는 것. API(Application Programming Interface) * Web service 개발 User Interface 개발 ex) chrome, Safari, Explorer, IP TV등 Web의 기본 3가지 요소 1. URL Unifrom Resource Identifier 리소스 식별자 특정 사이트 특정 쇼핑 목록 동영상 목록 모든 정보에 접근 할 수 있는 정보 HTT..
8. 전략 패턴 Strategy pattern 전략패턴으로 불리며, 객체지향의 꽃이라고 불린다. 유사한 행위들을 캡슐화하여, 객체의 행위를 바꾸고 싶은 경우 직접 변경하는 것이 아닌 전략만 변경 하여, 유연하게 확장 하는 패턴 SOLID중에서 개방폐쇄 원칙 (OCP)과 의존 역전 원칙 (DIP)를 따른다. 전략 메서드를 가진 전략 객체 전략 객체를 사용하는 컨텍스트 전략 객체를 생성해 컨텍스트에 주입하는 클라이언트를 코딩해보았다. public interface EncodingStrategy { String encode(String text); } import java.util.Base64; public class NormalStrategy implements EncodingStrategy{ @Override public..