From e27ca20284b0fe9eee2aa332024576143127cc57 Mon Sep 17 00:00:00 2001 From: leesoobeen <02ggang9@gmail.com> Date: Tue, 13 Feb 2024 11:26:16 +0900 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20=EC=BD=94=ED=8B=80=EB=A6=B0=20?= =?UTF-8?q?=EC=9D=B8=20=EC=95=A1=EC=85=98=20=ED=8C=8C=ED=8A=B8=201=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 +++++ .idea/gradle.xml | 16 +++++++++ .idea/jarRepositories.xml | 25 +++++++++++++ .idea/kotlin-study.iml | 9 +++++ .idea/kotlinc.xml | 6 ++++ .idea/misc.xml | 10 ++++++ .idea/modules.xml | 8 +++++ .idea/vcs.xml | 6 ++++ .../src/main/kotlin/baseball/Application.kt | 2 +- .../main/kotlin/baseball/KtInActionPart1.kt | 35 +++++++++++++++++++ 10 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/gradle.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/kotlin-study.iml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 kotlin-baseball/src/main/kotlin/baseball/KtInActionPart1.kt diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..bd326f3 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..f5a0c5d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlin-study.iml b/.idea/kotlin-study.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/kotlin-study.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..fdf8d99 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e800438 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..aec898a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/kotlin-baseball/src/main/kotlin/baseball/Application.kt b/kotlin-baseball/src/main/kotlin/baseball/Application.kt index 148d75c..603d348 100644 --- a/kotlin-baseball/src/main/kotlin/baseball/Application.kt +++ b/kotlin-baseball/src/main/kotlin/baseball/Application.kt @@ -1,5 +1,5 @@ package baseball fun main() { - TODO("프로그램 구현") + print("ho") } diff --git a/kotlin-baseball/src/main/kotlin/baseball/KtInActionPart1.kt b/kotlin-baseball/src/main/kotlin/baseball/KtInActionPart1.kt new file mode 100644 index 0000000..d6d5893 --- /dev/null +++ b/kotlin-baseball/src/main/kotlin/baseball/KtInActionPart1.kt @@ -0,0 +1,35 @@ +package baseball + +/* +* 코틀린의 주요 특성 +* 코틀린을 도입하면 더 적은 코드로 더 편하게 프로그래머의 목표를 달성할 수 있다. +* +* 정적 타입 지정 언어 +* 자바랑 똑같이 타입을 컴파일 시점에 알 수 있음. +* 이로 인해서 오는 장점이 성능, 신뢰성, 유지 보수성, 도구 지원 등이 있다고 함. 개인적으로는 컴파일 안 하는 언어는 왜 쓰는지 모르겠음 ㅋㅋ; +* +* 함수형 프로그래밍과 객체지향 프로그래밍 +* 어제 자면서 본 레퍼런스에서 코틀린과 스칼라가 자주 비교됨. 이유는 스칼라가 함수형 프로그래밍 언어이기 때문인 것 같은데 코틀린도 함수형 프로그래밍 언어를 좋아함. +* 함수형 프로그래밍의 장점 +* 1. 간결함. 명령형(imperative) 코드에 비해 더 간결하며 우아함. +* 2. 다중 스레드에도 안전함. 불변 데이터 구조를 사용하고 순수 함수를 그 데이터 구조에 적용하면 같은 데이터를 여러 스레드가 변경할 수 없음. 그래서 복잡한 동기화를 적용하지 않아도 됨. (아직 이해 x) +* 3. 테스트하기 쉬움. 자바는 전체 환경을 구성하는 준비 코드가 필요한데 순수 함수는 그런 준비 없이 독립적으로 테스트가 가능하다고 함. 이번 스터디에서 이 부분에 대해 공부해 봐야 할 듯!! +* +* 코틀린의 철학 +* 실용성 +* 코틀린은 실제 문제를 해결하기 위해 만들어진 언어라고 함. 연구를 하기 위한 언어가 아니고 이미 성공적으로 검증된 해법과 기능에 의존함. 이 부분이 개인적으로 마음에 듬. +* +* 간결성 +* 개인적으로 자바에서 쓸모없는 코드가 몇 개 보였음. private final 같은.. 자바는 쓸모 없는 코드 때문에 코드의 양이 엄청 많아짐. +* 이렇게 코드의 양이 많아지면 읽기가 싫어지고 유지보수하기 싫어짐. 이는 공학작문및발표 수업에서 배웠고 매우 동의하는 바임. +* 코드가 간결할수록 내용을 파악하기 더 쉬움. 코틀린은 간결하면서도 의도를 쉽게 파악할 수 있는 구문 구조를 제공함. 이 부분도 개인적으로 마음에 듬. +* 하지만 책을 조금 읽어봤을 때 너무 간결해 오히려 불편함.. 조금 적응하면 나아질 수 있다고 생각함. +* +* 안전성 +* 코틀린은 자바보다 NPE에 안전함. 보통 언어가 안전하다면 생산성이 하락하는데 코틀린에서는 ? 한 글자만 추가하면 됨. 굉장히 간결함. +* 또, 타입 캐스팅을 할 때도 극도로 간결함. 자바의 필요 없는 구문들이 거의 제거 됨. +* +* */ + +class KtInActionPart1 { +} \ No newline at end of file From 2041c49c8243c7f6bd68fdeffb1196c97447a84a Mon Sep 17 00:00:00 2001 From: leesoobeen <02ggang9@gmail.com> Date: Tue, 13 Feb 2024 15:14:19 +0900 Subject: [PATCH 2/8] =?UTF-8?q?feat:=20=EC=BD=94=ED=8B=80=EB=A6=B0=20?= =?UTF-8?q?=EC=9D=B8=20=EC=95=A1=EC=85=98=20=ED=8C=8C=ED=8A=B8=202=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 4 +- .../main/kotlin/baseball/KtInActionPart2.kt | 12 ++ .../main/kotlin/baseball/KtInActionPart3.kt | 2 + .../test/kotlin/baseball/KtInActionPart2.kt | 164 ++++++++++++++++++ 4 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 kotlin-baseball/src/main/kotlin/baseball/KtInActionPart2.kt create mode 100644 kotlin-baseball/src/main/kotlin/baseball/KtInActionPart3.kt create mode 100644 kotlin-baseball/src/test/kotlin/baseball/KtInActionPart2.kt diff --git a/.idea/gradle.xml b/.idea/gradle.xml index bd326f3..99c3817 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -3,8 +3,10 @@