전체 글
공부를 위해 사용중인 블로그입니다.
-
제네릭(Generic) '데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법'으로 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다. 즉, 특정(Specific) 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입이라는 것이다. 예를들어 우리가 어떤 자료구조를 만들어 배포하려고 한다. 그런데 String 타입도 지원하고싶고 Integer타입도 지원하고 싶고 많은 타입을 지원하고 싶다. 이럴때 String에 대한 클래스, Integer에 대한 클래스 등 하나하나 타입에 따라 만들기 보다 제네릭을 사용하는게 더 효율적이다. 제네릭(Generic)의 장점 1. 제네릭을 사용하면 잘못된 타입..
[Java] 제네릭(Generic)제네릭(Generic) '데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법'으로 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다. 즉, 특정(Specific) 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입이라는 것이다. 예를들어 우리가 어떤 자료구조를 만들어 배포하려고 한다. 그런데 String 타입도 지원하고싶고 Integer타입도 지원하고 싶고 많은 타입을 지원하고 싶다. 이럴때 String에 대한 클래스, Integer에 대한 클래스 등 하나하나 타입에 따라 만들기 보다 제네릭을 사용하는게 더 효율적이다. 제네릭(Generic)의 장점 1. 제네릭을 사용하면 잘못된 타입..
2022.12.21 -
리팩토링(Refactoring) 1. 가독성, 유지보수성 코드의 가독성과 유지보수성을 높이기 위해 소스코드를 재작성한다.(성능을 최적화하는 것은 다른 문제이다.) 2. 사람, 협업 여러명과 함께 작업을 하게 되는데 새로운 사람이 내가 작성한 프로젝트에 추가로 참여하면 인수인계가 되거나 불가능 할 경우가 있다 이때, 같이 협업을 하는 개체가 사람이 되며 사람이 이해하는 코드를 작성하는 것이 중요하다. Why? 중복 코드를 제거하고 수정 용이성 향상 소프트웨어 이해도와 가독성 향상 버그를 찾는데 도움이 된다. 프로그램 개발 속도 향상 How? 사유사한 내용이 세번 이상 반복될 때 리펙토링을 고려한다 하지만 무조건 하는 것이 아니라 상황에 따라 결정 작성된 설계, 소스코드에서 새로운 기능을 추가하기 어려울때 ..
리팩토링(Refactoring)리팩토링(Refactoring) 1. 가독성, 유지보수성 코드의 가독성과 유지보수성을 높이기 위해 소스코드를 재작성한다.(성능을 최적화하는 것은 다른 문제이다.) 2. 사람, 협업 여러명과 함께 작업을 하게 되는데 새로운 사람이 내가 작성한 프로젝트에 추가로 참여하면 인수인계가 되거나 불가능 할 경우가 있다 이때, 같이 협업을 하는 개체가 사람이 되며 사람이 이해하는 코드를 작성하는 것이 중요하다. Why? 중복 코드를 제거하고 수정 용이성 향상 소프트웨어 이해도와 가독성 향상 버그를 찾는데 도움이 된다. 프로그램 개발 속도 향상 How? 사유사한 내용이 세번 이상 반복될 때 리펙토링을 고려한다 하지만 무조건 하는 것이 아니라 상황에 따라 결정 작성된 설계, 소스코드에서 새로운 기능을 추가하기 어려울때 ..
2022.12.20 -
Json JavaScript Object Notation 의 약자로 JavaScript 에서 객체를 만들 때 사용하는 표현식을 의미한다. Json표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 XML을 대체해서 데이터 전송 등에 많이 사용된다. Json의 특징 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다. 자바스크립트 객체 표기법과 아주 유사하다. 자바스크립트를 이용하여 JSON 형식의 문서를 쉽게 자바스크립트 객채로 변환할 수 있는 이점이 있다. JSON 문서 형식은 자바스크립트 객체의 형식을 기반으로 만들어졌다. 자바스크립트의 문법과 굉장히 유사하지만 테그트 형식일 뿐이다. 다른 프로그래밍 언어를 이용해서도 쉽게 만들 수 있다. 특정 언어에 종속되지 않으며, 대부분의 ..
JsonJson JavaScript Object Notation 의 약자로 JavaScript 에서 객체를 만들 때 사용하는 표현식을 의미한다. Json표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 XML을 대체해서 데이터 전송 등에 많이 사용된다. Json의 특징 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다. 자바스크립트 객체 표기법과 아주 유사하다. 자바스크립트를 이용하여 JSON 형식의 문서를 쉽게 자바스크립트 객채로 변환할 수 있는 이점이 있다. JSON 문서 형식은 자바스크립트 객체의 형식을 기반으로 만들어졌다. 자바스크립트의 문법과 굉장히 유사하지만 테그트 형식일 뿐이다. 다른 프로그래밍 언어를 이용해서도 쉽게 만들 수 있다. 특정 언어에 종속되지 않으며, 대부분의 ..
2022.12.20 -
Lombok의 대표적인 Annotation @Setter Class 모든 필드의 Setter method를 생성해준다. @Getter Class 모든 필드의 Getter method를 생성해준다. @AllArgsConstructor Class 모든 필드 값을 파라미터로 받는 생성자를 추가한다. @NoArgsConstructor Class 기본 생성자를 자동으로 추가해준다. @ToString Class 모든 필드의 toString method를 생성한다.
Lombok의 대표적인 AnnotationLombok의 대표적인 Annotation @Setter Class 모든 필드의 Setter method를 생성해준다. @Getter Class 모든 필드의 Getter method를 생성해준다. @AllArgsConstructor Class 모든 필드 값을 파라미터로 받는 생성자를 추가한다. @NoArgsConstructor Class 기본 생성자를 자동으로 추가해준다. @ToString Class 모든 필드의 toString method를 생성한다.
2022.12.19 -
Spring의 대표적인 Annotation @Component 생성한 Class를 Spring의 Bean으로 등록할 때 사용 @ComponentScan Spring Framework는 @Component, @Service, @Repository, @Controller, @Configuration 중 1개라도 등록된 클래스를 찾으면, Context에 bean으로 등록한다. @ComponentScan Annotation이 있는 클래스의 하위 Bean을 등록 될 클래스들을 스캔하여 Bean으로 등록한다. @Bean @Bean Annotation은 개발자가 제어가 불가능한 외부 라이브러리와 같은 것들을 Bean으로 만들 때 사용한다. @Controller Spring에게 해당 Class가 Controller의 ..
스프링 어노테이션(String Annotation)Spring의 대표적인 Annotation @Component 생성한 Class를 Spring의 Bean으로 등록할 때 사용 @ComponentScan Spring Framework는 @Component, @Service, @Repository, @Controller, @Configuration 중 1개라도 등록된 클래스를 찾으면, Context에 bean으로 등록한다. @ComponentScan Annotation이 있는 클래스의 하위 Bean을 등록 될 클래스들을 스캔하여 Bean으로 등록한다. @Bean @Bean Annotation은 개발자가 제어가 불가능한 외부 라이브러리와 같은 것들을 Bean으로 만들 때 사용한다. @Controller Spring에게 해당 Class가 Controller의 ..
2022.12.19 -
자바 코드에 적용되는 내장 어노테이션 @Override 선언한 메서드가 오버라이드 되었다는 것을 나타냅니다. 만약 상위(부모) 클래스(또는 인터페이스)에서 해당 메서드를 찾을 수 없다면 컴파일 에러를 발생 시킵니다 @Deprecated 해당 메서드가 더 이상 사용되지 않음을 표시합니다. 만약 사용할 경우 컴파일 경고를 발생 키십니다. @SuppressWarnings 선언한 곳의 컴파일 경고를 무시하도록 합니다. @SafeVarargs Java7 부터 지원하며, 제너릭 같은 가변인자의 매개변수를 사용할 때의 경고를 무시합니다. @Functionallnterface Java8 부터 지원하며, 함수형 인터페이스를 지정하는 어노테이션입니다. 만약 메서드가 존재하지 않거나, 1개 이상의 메서드(default 메서..
자바 어노테이션(Java Annotation)자바 코드에 적용되는 내장 어노테이션 @Override 선언한 메서드가 오버라이드 되었다는 것을 나타냅니다. 만약 상위(부모) 클래스(또는 인터페이스)에서 해당 메서드를 찾을 수 없다면 컴파일 에러를 발생 시킵니다 @Deprecated 해당 메서드가 더 이상 사용되지 않음을 표시합니다. 만약 사용할 경우 컴파일 경고를 발생 키십니다. @SuppressWarnings 선언한 곳의 컴파일 경고를 무시하도록 합니다. @SafeVarargs Java7 부터 지원하며, 제너릭 같은 가변인자의 매개변수를 사용할 때의 경고를 무시합니다. @Functionallnterface Java8 부터 지원하며, 함수형 인터페이스를 지정하는 어노테이션입니다. 만약 메서드가 존재하지 않거나, 1개 이상의 메서드(default 메서..
2022.12.19 -
어노테이션 에노테이션은 주석이라는 의미를 가지지만 Java에서는 주석 이상의 기능을 가지고 있다. 자바에서 @ 기호를 앞에 붙여서 사용하는데, JDK 1.5 버전 이상에서 사용 가능하다. 어노테이션의 용도 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공 실행시(런타임시)특정 기능을 실행하도록 정보를 제공 어노테이션의 장점 코드량 감소 유지보수가 쉽다. 생산성이 증가된다.
어노테이션(Java Annotation)어노테이션 에노테이션은 주석이라는 의미를 가지지만 Java에서는 주석 이상의 기능을 가지고 있다. 자바에서 @ 기호를 앞에 붙여서 사용하는데, JDK 1.5 버전 이상에서 사용 가능하다. 어노테이션의 용도 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공 실행시(런타임시)특정 기능을 실행하도록 정보를 제공 어노테이션의 장점 코드량 감소 유지보수가 쉽다. 생산성이 증가된다.
2022.12.19 -
Python Containers 1. tuple 자료 위치를 바꾸거나 수정할 수 없게 해준다. 2. set 겹치거나 안겹치는 자료가 뭐가 있는지 비교해준다. 3. frozenset set을 한번 만들면 자료를 바꾸거나 수정할 수 없다. 4. dictionary 키(key)와 값(value)으로 맵핑되어 있는 순서가 없는 집합
containersPython Containers 1. tuple 자료 위치를 바꾸거나 수정할 수 없게 해준다. 2. set 겹치거나 안겹치는 자료가 뭐가 있는지 비교해준다. 3. frozenset set을 한번 만들면 자료를 바꾸거나 수정할 수 없다. 4. dictionary 키(key)와 값(value)으로 맵핑되어 있는 순서가 없는 집합
2022.12.19