일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 인강리뷰
- 카카오톡1차
- Design Pattern
- 프로그래머스
- 독서리뷰
- 공부
- Singleton
- 람다
- study
- 인프런
- 독서
- 에러
- 디자인패턴
- JPA
- Java
- 회고
- javascript
- math
- 자바
- Eclipse
- 인코딩
- Head First Design Pattern
- 오라클
- spring
- 우아한테크코스
- 후기
- Oracle
- 이펙티브자바
- 매핑
- Today
- Total
목록자바 (65)
Lee's Grow up
구글에서 제공해주는 자바 코딩 스타일 가이드에 대한 정리입니다.원문 해당 내용은 작성일 기준 문서의 내용을 정리한 것 입니다. 소스파일 이름 : 포함하고 있는 최상위 레벨의 대소문자 구분되는 이름으로 이루어집니다. 확장자 : .java 확장자를 사용합니다. 인코딩 : UTF-8 ASCII(0x20)은 유일한 공백 문자이며, 탭 문자는 공백에 사용하지 않습니다. 모든 특수 문자를 사용할 때 이스케이프 시퀀스 (\b, \w 등)을 사용하며, 그 문자의 진수, 유니코드는 사용하지 않습니다. 비 ASCII문자는 유니코드를 사용하고, 주석으로 설명해도 무방합니다. 소스파일 구조 소스 파일은 다음 순서로 구성됩니다. 각 객션 간에는 공백 라인이 하나 들어가야 합니다. 라이센스 또는 저작권 정보 ( 있는 경우 ) 패..
해당 내용은 책 모던 자바 인 액션의 내용을 참고해서 작성하였습니다. 등장 배경 Java를 통해 개발을 진행하다 보면, 해당 객체의 참조 값이 null인지 아닌지 체크하는 분기문이 생기는데, 이와 같은 분기문의 경우 코드의 가독성이 떨어지고, 해당 객체가 null을 가질 수 있는 객체인지, 필수 값인지 직관적으로 알 수 있는 방법이 없어서 에러의 근원이 되는 문제가 발생했기 때문에, 선택형값을 캡슐화하는 클래스 Optional을 Java 8에 추가되었다. Optional 객체 만들기 1. 빈 Optional 객체 만들기 Optionl 클래스의 정적 팩토리 메소드로 아래와 같이 사용 가능 Optional optStr = Optional.empty();2. null이 아닌 값으로 Optional 만들기 만약..
해당 내용은 모던 자바 인 액션의 내용을 참고해서 작성하였습니다. 스트림 스트림은 람다와 마찬가지로 자바8에서 추가된 기능이다. 여기서 스트림이란, 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소로 정의할 수 있다. 스트림과 컬렉션 스트림도 컬렉션과 마찬가지로 연속된 값 집합의 인터페이스를 제공한다. 단 데이터를 언제 계산하느냐가 컬렉션과 스트림의 가장 큰 차이. 컬렉션은 현재 자료구조가 포함하는 모든 값을 메모리에 저장하는 자료구조이다. 그 후, 계산이 가능하다. 그러나 스트림의 경우 요청할 때만 요소를 계산하는 고정된 자료구조이다. 이를 동영상으로 비유하면, 컬렉션은 동영상을 모두 다운로드 후에 볼 수 있고, 스트림의 경우 전체가 아닌 해당 구간만 다운받아서 볼 수 있는 스트리밍 서비스가 ..
해당 내용은 모던 자바 인 액션을 참고해서 작성한 내용입니다. 람다란 무엇인가 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터나 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 이러한 람다는 아래 4가지의 특징을 가진다. 익명 : 메서드와 다르게 이름이 없으므로 익명이라고 표현한다. 함수 : 람다는 메서드처럼 클래스에 종속되지 않아 함수라고 부른다. 전달 : 람다 표현식을 메서드의 인수로 전달하거나 변수로 저장 가능 간결성 : 많은 코드를 줄일 수 있다. 아래는 람다의 기본 구조이다 (Member m1, Member m2) -> m1.getName().compareTo(m2.getName()); 위 예..
요구사항의 변화 소비자의 요구사항은 언제든지 변할 수 있기 때문에, 변화에 조금 더 유연한 방식이 필요하게 되었다. 예를 들어, 처음에는 성이 'LEE'인 사람들만 추출해주는 되는 프로그램이 있다고 가정했을 때, 갑자기 소비자가 성이 'LEE'이고, 나이가 28살 이상인 사람들의 리스트를 추출해주세요. 라고 요구사항이 변경 될 경우 어떠한 방법으로 해결할 수 있는지 예제를 통해 알아보겠습니다. 해당 내용은 Mordern Java in Action 책의 내용을 참고하여 작성하였습니다. 1. 이름에서 성을 기준으로 필터링 첫 요구사항처럼 멤버 리스트에서 성이 LEE인 사람들을 필터링 하는 코드를 아래처럼 작성할 수 있습니다. public static List filterByLas..
지네릭스(Generics) 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 쉽게 말해 타입을 명시함으로써 타입에 대한 안정성과, 번거로운 형변환을 줄여주는 기능이다. 그리고 지네릭은 클래스와, 메소드에 선언이 가능하다. 지네릭 클래스 Java의 지네릭 클래스인 ArrayList 클래스를 참고해보자 내용은 Oracle 홈페이지의 JDK 11의 API의 내용입니다. public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable { // ..

요즘 인프런을 통한 강의로 부족한 기본기를 다지는 중인데 인프런에 등록된 로드맵중 시작단계에 해당 강의가 있어서 구매하게 되었다. 이런 걸 배울 수 있어요 그동안 이해 안 되었던 책들의 내용이 이해되기 시작합니다. 자바의 고급스런 기법들에 대한 이해와 접근이 쉬워집니다. 프로그래밍시 클래스의 활용이 좀 더 쉬워집니다. 좀 더 객체지향적인 프로그래밍을 할 수 있습니다. 클래스를 알면 자바가 정말 쉽습니다. 자바는 클래스로 시작해서 클래스로 끝난다고 볼 수 있는데 그렇다면 클래스를 안다는 것이 얼마나 중요한 일이겠습니까? 이 강의를 통해 클래스를 이해하고 많은 용어를 이해하면 자바 코드를 볼 때 "아 이게 그거였구나"하면서 자바 코드를 보는 것이 즐겁게까지 느껴질지도 모릅니다.( 바램입니다 ^^ ) ...이..

이전에 JAVA 언어로 배우는 디자인 패턴 입문 이라는 책을 공부하면서 말그대로 입문 서적이였기 때문에 가끔 부족한 설명이 느껴져서 매번 관련 래퍼런스를 검색해가며 공부를 병행했었다 자주 방문한 래퍼런스는 https://refactoring.guru/design-patterns Design Patterns refactoring.guru 각종 찬사들 스콧 맥닐리, 썬 마이크로시스템즈 회장 : 자바 기술은 모든 곳에 쓰입니다..... 켄 아놀드, 썬 마이크로시스템즈 시니어 엔지니어 : 빠르고 재미있고 정신없는 책입니다...... 로스 골드버그 : 정말 놀라운 학습법입니다. 도저히 책을 내려놓을 수 없었어요..... 폴로이드 존슨 : 너무 좋아서 눈물이 막 나오려고 해요.... 위와같은 인용구로 책을 시작합니..