전체 글 (33) 썸네일형 리스트형 data class 1. 등장배경class User { private String name; private int age; // getter, setter // equals() // hashCode() // toString()} 위의 코드를 보면 알겠지만, 보일러플레이트 코드가 상당히 많다.특히 아래의 것들은 개발해본 사람이라면 공감할 것이다. DTOEntityAPI 응답 객체 2. 이를 줄이고자 data 클래스가 등장data class User(val name: String, val age: Int) 자동 생성 목록equals()hashCode()toString()copy()componentN() (구조 분해) 3. 특징1. 반드시 주 생성자에 파라미터가 있어야 함data class Use.. [도서 리뷰 05] 안드로이드를 위한 Gradle 책 난이도 : ★ ★★추천 별점 : ★ ★ https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000003172448https://start.spring.io/스프링 프레임워크를 사용하거나, 안드로이드 스튜디오를 사용하면 꼭 마주하게 되는 기본 설정들이있다.오늘은 그 중 하나인 Gradle에대해서 알아보고자, 읽게된 책이다. Gradle은 Gradle사에서 만든 범용 빌드 도구이다.여기서 쉽게말해서 빌드란 Jar, AAR, AP파일을 만드는 방법을 의미한다. 즉 소스코드를 파일로 만들기 위해서 사용하는 방법중 하나가 Gradle인 것이다. 특징 몇가지를 아래에서 소개하겠다. 1. Polyglot Build대표적으로 LinkedIn 사이트가 60개의 서로 다른 언.. [이펙티브 자바] 객체 생성과 파괴 01 생성자 대신 정적 팩터리 메서드를 사용하자5가지의 장점이 존재하는데, 첫 번째, 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명하지 못한다. 반면 정적 팩터리는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있다. 예컨대 생성자인 BigInteger(int, int, Random)과 정적 팩터리 메서드인 BigInteger.probablePrime 중 어느쪽이 '값이 소수인 BigInteger를 반환한다'는 의미를 더 잘 설명할 것 같은지 생각해보자. 오버로딩을 통해 이 제한을 피해갈 수도 있지만, 입력 매개변수의 차이로는 각 생성자가 어떤 역할을 하는지 명확하게 설명할 수 없다. 두 번째, 호출될 때마다 인스턴스를 새로 생성하지는 않아도.. [도서 리뷰 03] 객체지향의 사실과 오해 - 조영호 책 난이도 : ★ ★ ★ ★추천 별점 : ★ ★ ★ ★ ★ https://product.kyobobook.co.kr/detail/S000001628109?utm_source=google&utm_medium=cpc&utm_campaign=googleSearch>_network=g>_keyword=>_target_id=aud-901091942354:dsa-435935280379>_campaign_id=9979905549>_adgroup_id=132556570510&gad_source=1_network=g>_keyword=>_target_id=aud-901091942354:dsa-435935280379>_campaign_id=9979905549>_adgroup_id=132556570510&g.. Network 정리 김영한님의 IO, Network, Reflection의 강의에 대해 수강했다. 이중 중요하다고 생각하고 느꼈던 것에 대해 정리한다. 1. IO자바에서 Input과 Output은 Stream(추상)클래스를 통해 이루어진다. IO Stream은 Stream에 보조기를 Chaining 형식으로 연결하여 사용하는것이 일반적이다.ex) BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // System.in은 InputStream의 구현체이다 ex) BufferedWriter wr = new BufferedWriter(new InputStreamWriter(System.out)); // System.out은 OutputStrea.. MultiThread 정리 김영한님의 MultiThread의 강의를 수강했다.그동안 여러 프로젝트를 진행하며 느꼈던 점과 공부하면서 배운점을 간단하게 정리한다. 아래의 개념을 잘모르겠으면 보고오자.쓰레드,프로세스,코어 간단 정리 [CS] 멀티 프로세서? 멀티 프로세스? 멀티쓰레드?멀티 프로세서, 멀티 프로세스, 멀티쓰레드는 CS를 학습하면서 잘 안와닿아서, 헷갈렸던 개념들이다.여태까지 경험하고 학습해온 내용을 바탕으로 가장 이해하기 쉽게 설명하고자한다.먼저 위hjustin.tistory.com public static void main(String args) 1. Main 스레드 생성우리는 코딩 테스트를 할때나, Springboot를 이용한 프로젝트를 진행할때항상 위의 메서드를 실행한다.이때 public static void m.. 가장 좋은 최적화란 뭘까 개발자는 항상 새로운 비즈니스 로직과 레거시 코드의 최적화중 하나를 선택해야한다.어떤 최적화가 가장 좋은 최적화일까? 김영한의 강의를 듣다가 정말 좋은 문구가 있어서 발췌해왔다. 가장 좋은 최적화는 최적화하지 않는 것이다.많은 개발자가 미래에 발생하지 않을 일 때문에 코드를 최적화하는 경우가 많다. 예를 들어서 초기 서비스이고, 아직 사용자가 많을지 예측이 되지 않는 상황인데, 코드 최적화에 너무 많은 시간을 사용할 수 있다. 이것은 사용자는 얼마 없는데 매우 비싼 서버를 구매하는 것과 같다. 물론 이 이야기가 극단적으로 최적화를 하지 말자는 말이 아니다.예를 들어서 A와 관련된 기능을 매우 많이 최적화 했는데, 사용자가 없어서 결국 버리게 되는 경우도 있다. 반면에 별로신경쓰지 않은 B와 관련된 기능에.. [도서 리뷰 02] 스프링 부트 3 백엔드 개발자 되기 - 신선영 책 난이도 : ★★★☆추천 별점 : ★★★https://product.kyobobook.co.kr/detail/S000212798297 스프링 부트 3 백엔드 개발자 되기: 자바 편 | 신선영 - 교보문고스프링 부트 3 백엔드 개발자 되기: 자바 편 | 실력을 갖춘 개발자로 성장하려면 시작이 중요합니다. 그래서 이 책은 무엇부터 익혀야 하는지 막막한 입문자에게 백엔드 개발의 필수 지식을 학습product.kyobobook.co.kr 이 책은 스프링 시큐리티를 처음 접하거나,스프링 프로젝트가 처음인 사람은 난이도가 높을 책이다. 코드를 하나하나 깊게 설명하지는 않고, 각 Step별로 완성에 목적을 두었다.그렇기 때문에 기본적인 REST API의 이해와 AJAX, spring 구조 등 알고 있지 못하면 그.. 이전 1 2 3 4 5 다음