반응형

Study 76

[코틀린 프로그래밍] Chapter.07 객체와 클래스

객체와 싱글톤 코틀린은 싱글톤을 직접 지원함으로써 싱글톤을 구현할 때 발생할 수 있는 부담과 구현이 잘못될 수 있는 리스크를 제거하였다. 객체 표현식으로 사용하는 익명 객체 객체가 필요하면 객체를 가져야 한다. 코틀린의 객체 표현식은 Java의 익명 클래스(Anonymous Class)를 생성하는 데 유용하게 쓰인다. 선언 방식으로는 object 키워드 이후에 블록을 작성하여 사용할 수 있다. fun drawCircle() { val circle = object { val x = 10 val y = 20 val radius = 30 } println("Circle x : ${circle.x} y : ${circle.y} radius : ${circle.radius}") } drawCircle() 익명 객..

Study/kotlin 2021.04.26

[코틀린 프로그래밍] Chapter.06 오류를 예방하는 타입 안정성

Any와 Nothing 클래스 Any Java의 Object와 대응되는 클래스지만 같지는 않습니다. Any는 to(), let(), run(), apply(), also()와 같은 확장함수를 가지고 있습니다. 이러한 메소드에 대해서는 뒤에 자세히 다루겠습니다. Nothing 함수가 아무것도 리턴하지 않는 경우이다. Java의 void가 떠오르지만 다른 개념입니다. 코틀린은 표현식이 리턴을 하지 않을 때에는 Unit을 사용합니다. 그러나 정말 아무것도 리턴하지 않는 경우에는 Nothing 사용합니다. fun computeSqrt(n: Double): Double { if (n >= 0) { return Math.sqrt(n) } else { throw RuntimeException() // Nothing ..

Study/kotlin 2021.04.20

[코틀린 프로그래밍] Chapter.05 콜렉션 사용하기

콜렉션의 특징Java에서는 리스트, 셋, 맵 등의 여러 종류의 콜렉션들을 사용합니다. 코틀린에서은 모두 지원하고 있고 이를 뮤터블( 변경가능 )과 이뮤터블( 변경불가능 ) 2가지로 나뉘어서 사용할 수 있습니다. 배열 만드는 방법val alphabet = arrayOf("a", "b", "c", "d") println("${alphabet[0]} and ${alphabet[1]}") smart하지 못한 방법아래 코드는 Integer 클래스 타입으로 생성됨. 오버헤드가 크게 발생합니다.val notSmartNumbers = arrayOf(1, 2, 3, 4, 5)smart한 방법int인 primity type으로 생성하자.val smartNumbers = intArrayOf(1, 2, 3, 4, 5) // ..

Study/kotlin 2021.04.14

[코틀린 프로그래밍] Chapter.04 외부 반복과 아규먼트 매칭

소스 코드에서 많은 비중을 차지하고 있는 for문을 코틀린에서 우아하게 다루는 방법을 정리해보겠습니다. 범위와 반복 코틀린에서 제공하는 레인지를 설정할 수 있습니다. val oneToFive: IntRange = 1..5 val aToE: CharRange = 'a'..'e' 반복 자바에서 일반적인 for문과 비교해보겠습니다. // Java for (int i = 0; i < 5; i++) { // logic.. } Kotlin // 정방향 for ( i in 1..5) { // logic.. } // 후방향 for ( i in 5.downTo(1)) { // logic... } until : 마지막값을 포함 시키지 않는 for (i in 1 until 5) { print("$i, ") } // 1,2,..

Study/kotlin 2021.04.13

[코틀린 프로그래밍] Chapter.03 함수를 사용하자

함수생성간단한 함수코틀린은 KISS ( Keep It Simple Stupid ) 원칙을 준수한다. 단순하게 작성이 가능하다.fun greet() = "hello" // 가장 심플한 메소드 정적타입의 변수와 마찬가지로 메소드의 리턴타입 또한 타입 추론이 가능하다. 위 코드를 보면 코틀린은 리턴타입이 String 타입이라는 것을 추론할 수 있다.fun greet() : String = "hello" // 위 코드와 동일 코틀린은 표현식이 많고 명령문은 적다. 아래의 메소드가 표현식이다.fun sayHello() = println("hello")코틀린 메소드에서 return 타입은 필수입니다. 위와 같이 리턴타입이 없는 println을 사용할 경우는 Unit 을 리턴합니다. Unit은 아무런 값도 리턴하지 ..

Study/kotlin 2021.04.05

[코틀린 프로그래밍] Chapter.02 Java의 개발자를 위한 코틀린 필수 사항

목표 숫자와 문자열 변수 정의하기 상수 만들기 타입 명시하기 계산 결과를 이용해 문자열 표현식 만들기 멀티라인 문자열 만들기 이번 챕터에서는 자바 개발자들은 코틀린이 가진 뉘앙스를 배우는 동안에는 자바에서 사용하던 버릇을 잊어야합니다. 코드량 Java >> Kotlin 세미클론 Kotlin은 자바에 비해 많은 것들이 선택적입니다. 대표적인 예로 모든 표현식이나 명령문 마지막에 세미클론(;)을 생략되었습니다. // Java int a = 3 * 6; // Kotlin val a = 3 * 6 변수타입 코틀린은 정적 타입 언어입니다. 모든 변수를 선언할 때 타입을 지정해야하는 것은 아니지만 일반적으로는 지정을 해야합니다. 타입이 지정된 변수는 컴파일 시점에 검증됩니다. fun main() { val gree..

Study/kotlin 2021.03.29

[코틀린 프로그래밍] Chapter.01 시작하기

코틀린 코틀린을 접한 개발자들은 좋아한다는 표현이 부족하다고 합니다. 사랑... 저 또한 가볍게 맛보는 중인데도 왜 이제서야 알았을까.. 후회하며 사용하고 있습니다. 그 만큼 사랑(?) 받을 만한 언어입니다. 코틀린은 Java와 형태는 다르지만, 의미로는 유사한 문법을 가지고 있습니다. 그래서 저 같은 Java 개발자들이 빠르게 습득할 수 있습니다. 클래스로부터의 상속 없이 클래스에 도메인 특화 편의 메소드를 추가할 수 있습니다. 확장 함수라고 불리며, 오니지날 클래스의 메소드처럼 사용됩니다. 델리게이션은 코드를 재사용할때 상속보다 더 좋은 디자인을 할 수 있습니다. 코틀린은 if-else문을 중첩하는 대신에 간결하고 우아한 아규먼트 매칭 문법을 사용합니다. 이미 존재하는 함수를 확장하는 것이 코틀린에서..

Study/kotlin 2021.03.23

테스트 코드 학습(Mockito)

이전 글에서 Junit5에 대해서 정리하였습니다. 이번 글은 Junit5에서 Mockito를 사용하는 방법에 대해서 정리하겠습니다. 테스트 코드 학습 (junit5) - 개념 및 간단한 사용법 사용된 모든 소스는 Github에 올려두었습니다. 참고 영상 : www.inflearn.com/course/the-java-application-test/dashboard 더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의 자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발 www.inflearn.com Mockito란? 이전에 작성한 이 글과 함께 보시면 이해하시는 ..

Study/test 2021.03.18

테스트 코드 학습 (junit5) - 개념 및 간단한 사용법

junit5 가 나온지 2년이 넘어가고 있습니다. TDD로 프로젝트를 개발하기 위해선 당연히 Test Code를 작성할 줄 알아야합니다. 이번 글에는 Test Code에 대해서 개념과 간단한 사용법에 대해서 정리하겠습니다. 사용된 모든 소스는 Github에 올려두었습니다. 참고 영상 : www.inflearn.com/course/the-java-application-test/dashboard 더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의 자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발 www.inflearn.com JUnit 이란? Java Unit..

Study/test 2021.03.15

Spring Camp - 테스트 코드에 대하여

테스트 코드의 중요성은 진작에 알고 있었으나, 언제 적용하나? 적용하려면 어떻게 공부하지 막막하던 참에 직장 동료분께서 추천해주시어 영상을 보고 내용이 너무 좋아 정리하게 되었습니다. www.youtube.com/watch?v=YdtknE_yPk4&list=PLdHtZnJh1KdaM0AfxPA7qGK1UuvhpvffL&index=12 왜 작성해야하는가? 가장 큰 이유는 안정감과 자신감입니다. 테스트 코드는 코드에 대한 가장 빠른 피드백을 줄 수 있는 도구입니다. 내가 작성한 코드 대해서 버그를 미리 대비하고 수정을 하였을 때 버그가 없는지 피드백을 해줍니다. 이러한 이유로 안정감과 자심감이 생겨 배포를 자신있게 할 수 있게됩니다. 모든 케이스에 대해 작성 지금은 발생하지 않겠지만 코드 수정으로 발생할 수..

Study/test 2021.03.09

[백기선님의 자바 라이브 스터디] 11주차 - Enum

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 추천 도서 www.yes24.com/Product/Goods/7516911 토비의 스프링 3.1 세트 『토비의 스프링 3.1』은 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어렵게 느껴지는 개발자부터 스프링을 활용한 아키텍처를 설계하고 프레임워크를 개발하려고 하는 아키텍트에 www.yes24.com www.acornpub.co.kr/book/jpa-programmig 자바 ORM 표준 JPA 프로그래밍 JPA 기초 이론과 핵심 원리, 그리고 실무에..

Study/java 2021.03.05

[백기선님의 자바 라이브 스터디] 10주차 - 멀티쓰레드 프로그래밍

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 추천도서 www.yes24.com/Product/Goods/3015162 자바 병렬 프로그래밍 스레드는 자바 플랫폼에서 가장 기본적으로 제공되는 기능 중 하나다. 멀티코어 프로세서가 대중화되면서 고성능 애플리케이션을 작성할 때 병렬 처리 능력을 효과적으로 활용하는 일의 중요 www.yes24.com Process 의미 그대로 Process입니다. 프로그램을 실행하여 실행 중인 것 예를 들어 OS에서 크롬을 킨다던가, intellij를 실행한다던가 엑셀을 실행하..

Study/java 2021.03.02

[백기선님의 자바 라이브 스터디] 9주차 - 예외 처리

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 추천도서 www.11st.co.kr/products/2874490917?utm_medium=%EA%B2%80%EC%83%89&gclid=Cj0KCQiA7NKBBhDBARIsAHbXCB5I37sBM_HgHnyywcYnfRFFqVixy9co8mCWT83X-aNHrulHvk99TTIaAkZqEALw_wcB&utm_source=%EA%B5%..

Study/java 2021.02.24

[백기선님의 자바 라이브 스터디] 8주차 - 인터페이스

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 추천 도서 book.interpark.com/product/BookDisplay.do?_method=detail&sc.prdNo=220675219&gclid=Cj0KCQiApsiBBhCKARIsAN8o_4gBdWvcLgQ7MkppWwNVd8BU1dELce8QtUxvrL9jHijO2gOC9yVTPGEaAiyDEALw..

Study/java 2021.02.21

[백기선님의 자바 라이브 스터디] 7주차 - 패키지

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 추천 도서 book.naver.com/bookdb/book_detail.nhn?bid=1486282 테스트 주도 개발 최근 주목받고 있는 프로그래밍 방법인 테스트 주도 개발, 즉 TDD를 설명한 최초의 책이자, 가장 권위적인 책. 테스트 주도 개발을 퍼뜨린 장본인이며 객체 지향 프로그래밍의 선구자 중 한 사람 book.naver.com Package 키워드 Package란 무엇인가? Package는 Class, Interface file의 집합 첫 줄에 작성되어야함 모든..

Study/java 2021.02.19
728x90
반응형