Language

·Language/Java
람다가 등장한 배경람다 표현식이 등장한 배경은 자바 8의 주요 개선 사항 중 하나이다. 이전 자바에서는 코드를 간결하게 표현하기 위해선 익명 클래스를 활용하였다. 익명클래스는 인터페이스나 추상 클래스의 구현을 정의하는 데에는 유용했지만, 코드가 복잡해지고 가독성이 떨어지는 문제가 발생되었다. 자바 8에서는 이러한 문제를 해결하기 위해 람다 표현식을 도입하였다. 람다 표현식은 익명 함수를 정의하는 간결한 방법으로, 함수형 프로그래밍 스타일을 지원하고 코드를 더 간결하게 만들어준다. 람다 표현식은 자바 컬렉션과 스트림 API와 밀접하게 관련되어 있으며, 컬렉션을 데이터를 저장하고 조작하는 데 사용되는 자바의 핵심 요소 중 하나이다. 자바 8에서는 이 컬렉션을 효과적으로 다루기 위해 스트림 API 도입하였고,..
·Language/Java
어노테이션의 역할스프링 같은 프레임워크를 사용하면 아무래도 어노테이션의 역할은 더 광범히 해진다. 그럼 일단 Java 코드로 돌아와 어노테이션의 역할을 먼저 확인해 보자.우선, 어노테이션은 기본적으로 아래 세 가지 기능을 제공한다.컴파일러에서 코드 작성 문법 에러를 체크빌드도구에서의 사용 (코드 생성)실행 시(런타임 시) 특정 기능을 실행이것에 대한 예시로 @Override 어노테이션을 확인해 보자.  @Override 어노테이션은 직관적으로 자바의 오버라이딩을 표현해 주는 것을 알 수가 있다. 자바에 대한 오버라이딩을 배우면 알 수 있듯이 저 어노테이션이 없다고 하더라도 해당 기능을 쓰는 데는 문제가 발생하지 않는다. class Parent { public void hello(String name..
클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. 주석 이번 챕터에서는 4가지 주제로 설명을 해보려고 한다. 주석을 최대한 쓰지 말자 좋은 주석 주석보다 어노테이션 JavaDoc 01. 주석을 최대한 쓰지 말자 책에서는 일단 주석을 사용하는 것을 지양하도록 설명하고 있다. 지양하는 이유는 올바른 주석을 활용하기가 생각보다 어렵기 때문이다. 올바른 주석은 그 어떤 정보보다 유용하지만 대부분의 주석은 그러하지 못하다. 주석은 나쁜 코드를 보안하지 못한다. 코드에 주석을 추가하는 이유는 일반적으로 코드품질이 나쁘기 때문이다. 코드품질이 나쁘다는 것은 코드만으로 본인이 작성한 로직을 설명하지 못한다는 의미이다. 이렇다 보니 주석으로 코드의 의도를 표현하는 경우가 발생한다...
클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. 이미지 출처 - https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898 Chapter3. 함수 어떤 프로그램이든 가장 기본적인 단위는 함수이다. 이 장은 함수를 잘 만드는 법에 대해 알려주고 있다. 01. SOLID 법칙 우선 책에 내용을 정리하기 전 SOLID 법칙에 대해 간단히 정리하고자 한다. SOLID 원칙은 객체지향 설계의 5가지 원칙이라고 하며, 책에서도 해당 방식을 언급하면서 설명하므로 알아줄 필요가 있다. SRP 단일 책임 원칙 OCP 개방-폐쇄 원칙 LSP 리스코프 치환 원칙 ISP 인터페이스 분리 원칙..
클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. Chapter 1. 깨끗한 코드 클린코드 1장에서는 어떤 코드가 깨끗한 코드이며 왜 깨끗한 코드를 사용해야 하는지 설명하고 있다. 나쁜 코드 코드를 읽게 되었을 때 '뭔가 이상하다. 변수의 의미도 모르겠고 중복코드가 많네. 포맷팅도 이상하고, 함수가 너무 뚱뚱한데?'라고 느낀 다면 나쁜 코드라고 볼 수 있다. 성능이 나쁜 코드 불필요한 연산이 들어가서 개선의 여지가 있는 코드 의미가 모호한 코드 이해하기 어려운 코드, 네이밍과 그 내용이 다른 코드 중복된 코드 비슷한 내용인데 중복되는 코드들은 버그를 낳는다. (재활용이 아닌 코드를 복붙 해서 여러 군데 사용하는 경우) 나쁜 코드가 나쁜 이유 나쁜 코드는 깨진 유리창..
·Language/Java
객체지향을 공부하다 보면 나오는 개념 중 하나가 다형성이다. 그 다형성을 설명하기 위해 나오는 키워드가 Overriding과 Overloading이다. 물론 다형성은 상위 클래스와 하위 클래스 사이에서도 이야기할 수 있고, 인터페이스와 구현 클래스 사이에서도 이야기할 수 있지만 가장 기본은 오버라이딩과 오버로딩이다. 관점에 따라 오버로딩은 다형성인지에 대해서는 이견이 존재한다. 하지만 객체지향엔 정답이 없으니 상관없다. 해당 키워드들을 비교하는 것은 자바 객체지향에 있어 클래식한 질문 중 하나이다. 왜냐하면 두 용어는 이름은 비슷하지만 전혀 다른 의미로 사용되기 때문이다. 오버라이딩과 오버로딩? - 같은 메서드 이름, 같은 인자 목록으로 상위 클래스의 메서드를 재정의 - 같은 메서드 이름, 다른 인자 목..
·Language/Java
코딩테스트를 풀다 보면 유용하게 써야 되는 방법 중 하나이다. 자바에서 'String[]' 배열과 'LIst' 사이 변환은 매우 간단하나 까먹을 때가 있어 문서화시켜 정리하자. String[] 배열을 List으로 변환하기 Array 유틸리티 클래스의 'asList'메서드를 사용하여 배열을 리스트로 변환할 수 있다. import java.util.Arrays; import java.util.List; public class ArrayToListExample { public static void main(String[] args) { String[] stringArray = {"a", "b", "c"}; List stringList = Arrays.asList(stringArray); System.out.p..
·Language/Java
이 코드에서 @Override가 있으면 문제가 없을까? class Parent { public void hello(String name) { System.out.println("안녕하세요, 저는 " + name + "입니다."); } } class Child extends Parent{ // @Override가 있고 없고 차이가 없을까? public void hello() { System.out.println("안녕!"); } } 위 코드는 @Override 어노테이션을 사용하지 않으면 동작이 되고, 사용하면 예외가 발생한다. 예외가 발생한다는 것은 오버라이딩이 아니라는 의미이다. 오버라이딩의 조건은 다음과 같다. 부모 클래스의 메서드와 메서드 이름이 동일해야 한다. 매개변수의 타입, 개수, 순서가 일치..
JH_DEV77
'Language' 카테고리의 글 목록