전체 글 46

Kotlin의 함수 (Collection, 확장함수, 가변 인자 함수, 중위호출)

3장. 함수 정의와 호출 🎃 Kotlin 에서 Collection 만들기 val set = setOf(1,2,3) val set2 = hashSetOf(1,7,53) val list = arrayListOf(1,7,53) val map = hashMapOf(1 to “one”, 7 to “answer”, 53 to “fifty-three”) to : 언어가 제공하는 특별한 키워드가 아니라 일반 함수이다 중위함수 : 인자가 1개인 함수 .javaClass 객체가 어떤 클래스에 속하는지를 볼 수 있다 java에서는 getClass() set2.javaClass class java.util.HashSet kotlin이 자신만의 컬렉션 기능을 제공하지 않는다는 의미 kotlin이 자체 컬렉션을 제공하지 않는 이..

Languages 2020.04.16

kotlin으로 java springboot 프로젝트 리팩토링 하기

spring boot + java로 만들어진 API 제공 서비스를 kotlin으로 리팩토링 하기 👩🏻‍🍳 intelliJ gradle 프로젝트 불러오기 spring boot maven으로 빌드하는법을 배운지 얼마되지 않아 갑자기 이번 프로젝트는 gradle으로 빌드 해야 했다. dependency를 선언하는데에 있어서, 프로젝트를 불러올때 작은 차이가 있었다 프로젝트 불러오는법 gradle.build 파일로 import gradle에 필요한 external library가 자동으로 불러지지 않는 경우 .idea 파일을 지운다음 다시 import 하여 해결 gradle 프로젝트로 인식 못할 때 🙅🏻‍♀️ 기존 프로젝트의 버전을 그대로 사용? 기존 프로젝트의 버전은 아래와 같았다 gradle : 4.3 sp..

Backend 2020.04.11

Kotlin과 Java의 차이 그리고 혼용

2장. Kotlin 기초 Kotlin 코드는 Java 코드와 한 프로젝트에 있어도 완벽하게 혼용 가능하고 컴파일 된다. 그리고 심지어 컬렉션 (ex. java.util.HashSet )을 공유하면서도 기능은 더 많다. 🐨 예제로 살펴보는 Kotlin의 특징 class Person (val name: String, val age: Int? = null) fun main (args: Array){ val persons = listOf(Person(“영희”), Person(“철수”, age = 29)) val oldest = persons.maxBy { it.age ?: 0 } } class 의 파라미터 파라미터 이름 뒤에 파라미터의 타입을 쓴다 ? 표시를 통해 null값이 될 수 있다는 표시를 해주고 = 뒤..

Languages 2020.04.10

Kotlin 튜토리얼

1장. Kotlin 이란 무엇이며, 왜 필요한가? 🐨 Kotlin 튜토리얼 코틀린 튜토리얼 링크 IntelliJ IDEA 튜토리얼 사용 kotlin getting-started hello world 출력 프로그램 만들어보기 java와 차이점 system.out.println —> println 코틀린 코드 컴파일 코틀린 소스코드 확장자 : .kt 코틀린 컴파일러 또한 자바 컴파일러처럼 소스코드를 분석해서 .class 파일을 만들어낸다 커맨드라인 실행방법 kotlinc -include-runtime -d java -jar 코틀린 런타임 라이브러리 코틀린 컴파일러로 컴파일한 코드는 런타일 라이브러리에 의존 배포시 런타임 라이브러리도 함께 배포해야한다 maven, gradle등의 빌드 시스템은 알아서 런타임을..

Languages 2020.04.10

👩🏻‍💻신입사원의 레거시 코드 뽀개기

신입사원은 레거시 코드를 받았고 뽀개려 합니다 💼 새로운 부서 새로운 일 2020년 3월, 드디어 정직원으로서의 첫 부서를 배치받았다. 네이버 지도를 서비스하는 팀에 들어와서 초반 1주차는 지도, 좌표계에 관련된 여러 자료들을 살펴보고 도메인 지식을 쌓는데에 주력했다. 새로운 팀, 새로운 업무를 맡게 되니 당연스레 레거시 코드를 인수인계 받았다. 난생 처음 레거시 코드를 받고보니 어디서부터 살펴보아야 하는가, 이걸 내가 다 볼 수 있을까?, 어떻게 봐야 다 봤다고 할 수 있을까 등등 많은 생각이 들었다. (난생 처음 재택근무도 하고 있다 COVID-19😷) 🗂 부여받은 업무 내가 부여받은 업무는 퇴사자 분이 인수인계 해주신 업무를 (java, spring boot로 된 API) kotlin으로 리팩토링하..

Backend 2020.04.03

[에러 해결] Caused by: java.net.BindException: Address already in use

😩 에러 발생 spring-boot 프로젝트를 여느때와 다름없이 intelliJ에서 실행시켰더니 갑자기 아래와 같은 오류들이 발생하며 실행이 안되었다….🤦🏻‍♀️ Caused by: java.net.BindException: Address already in use Execution failed for task ':Application.main()'. > Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 Caused by: org.apache.catalina.LifecycleExce..

error 2020.04.02