코틀린
-
코틀린에서 Data클래스에 JPA를 사용할 때 주의해야 할 점KOTLIN 2022. 11. 27. 14:27
코틀린의 data 클래스를 JPA와 함께 사용하려던 도중 몇가지 문제가 발생하여 알아보았다. 기본생성자 코틀린에서 data타입을 이용한 객체를 구현하여 JPA를 사용할 때 기본생성자를 작성해주어야한다. 이전 자바 공부할 때 배웠듯이 JPA의 경우 reflection을 이용해서 구현되기 때문에 기본생성자가 필수이다. @Entity data class Restaurant( @Id @GeneratedValue(strategy = GenerationType.AUTO) var id: Long? = null, @Column(unique = true, nullable = false) var name: String ) { constructor() : this(null, "") } 하지만 매번 기본생성자를 생성하기 위한..
-
코틀린에서 테스트 하기 (⏳)KOTLIN 2022. 11. 27. 14:16
자바에서 실행했던 인수테스트와 API테스트를 코틀린에서도 적용하는 방법을 알아보자. API 테스트 먼저 API테스트는 간단하게 mock()을 주입해줌으로서 구현할 수 있다. 먼저 dependency에 추가해준다. dependencies { testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.springframework.restdocs:spring-restdocs-mockmvc") testImplementation("io.mockk:mockk:1.12.0") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:1.6.20") test..
-
📕 코틀린 동시성 프로그래밍 - Ch.2) Coroutine in ActionKOTLIN 2022. 11. 11. 15:29
스레드 생성 코틀린에서는 직관적인 프로세스로 손쉽게 스레드를 생성할 수 있다. 현재 챕터에서는 하나의 스레드로 충분하지만, 다른 챕터에서 CPU-bound, I/O-bound 작업을 효율적으로 실행하기 위한 스레드 풀을 생성한다. CoroutineDispatcher 코루틴에서 스레드는 손쉽게 생성할 수 있지만, 스레드에 직접적으로 접근하거나 통제하는 것은 불가능하다. 스레드의 가용성, 부하, 구성에 따라 코루틴을 분배하는 작업은 CoroutineDispatcher가 통제하여 수행한다. 예를 들어 ThreadPoolDispatcher를 사용하여 하나의 스레드만을 이용하여 코루틴이 실행되도록 설정할 수 있다. 코루틴에 Dispatcher를 지정하기 Dispatcher가 존재한다면 Dispatcher를 사용하..
-
코프링(코틀린 + 스프링부트) + 구글 스프레드 시트로 슬랙봇 만들기 - ④ 구글 스프레드 시트 사용하기KOTLIN 2022. 10. 22. 15:13
이제 구글 스프레드 시트를 데이터베이스로 사용하기 위해서 프로젝트와 연동하자. 👍 영상 → https://www.youtube.com/watch?v=8yJrQk9ShPg 사이트 → https://joanne.tistory.com/m/45?category=975630 Interact with Google Sheet API from JAVA (1) 시트 자동화를 해야하는 상황에 처했다. 🥲 TODO 👊 1. MySQL DB에 쿼리를 날려 결과를 조회한다. 2. 받아온 결과를 적절하게 Google Spreadsheet에 자동으로 입력한다. 3. 이때, 결과는 실행 시점 기준 오 joanne.tistory.com 사이트 → https://joanne.tistory.com/m/46 Interact with Goo..
-
코프링(코틀린 + 스프링부트) + 구글 스프레드 시트로 슬랙봇 만들기 - ③ 슬랙으로 메세지, view 보내기KOTLIN 2022. 10. 22. 14:30
이번에는 슬랙앱을 통해서 사용자에게 메세지, view를 보내는 방법을 확인하자. 참고한 사이트는 다음과 같다. ↓ api 공식 문서 확인하기 → https://api.slack.com/methods Web API methods | Slack api.slack.com chat.postEphemeral 확인하기 → https://api.slack.com/methods/chat.postEphemeral#text_usage chat.postEphemeral API method Sends an ephemeral message to a user in a channel. api.slack.com 이번엔 간단하게 메세지를 보내는 방법을 확인하자. 메세지 보내기 1) 채널에 메세지 보내기 단순하게 채널에 공개적으로 메세..
-
코프링(코틀린 + 스프링부트) + 구글 스프레드 시트로 슬랙봇 만들기 - ② 슬랙으로 요청받기KOTLIN 2022. 10. 22. 14:28
이번엔 슬랙으로 들어오는 요청을 확인하는 방법을 알아보자. 간단한 실행 구조 확인하기 간단하게 요청을 받고 메세지를 보내는 구조는 다음과 같다. // 간단하게 메세지 보내보기 val client = Slack.getInstance().methods() runCatching{ client.chatPostMessage{ it.token("oAuth 토큰") .channel("앱 등록 채널") .text("보낼 메세지") } }.onFailure{e-> e.printStackTrace() } // app config를 이용하여 주석 요청 확인하기 val config = AppConfig.builder() .signingSecret("signing secret") .singleTeamBotToken("oAuth..
-
코프링(코틀린 + 스프링부트) + 구글 스프레드 시트로 슬랙봇 만들기 - ① 슬랙앱 생성 및 사용 설정하기KOTLIN 2022. 10. 22. 13:59
이번에는 코틀린을 공부하면서 코틀린과 함께 스프링부트를 이용한 슬랙봇을 만들어 보았다. 아이디어는 동기분이 점심봇을 얘기해주셨고, 이를 이용해서 공부하면 좋을 것 같아 슬랙봇이 메세지 통신을 어떻게하고 보여주는지 간단한 학습용 프로젝트를 진행했다! 참고로 데이터 베이스를 어떻게 할 지 생각해 보았는데, 예전에 유튜브에서 비슷한 아이디어로 슬랙봇을 만든 동영상이 생각이 났다! 영상을 보고 구글 스프레드 시트를 데이터베이스로 활용할 수 있다는 것을 알게 되었고, 리스트를 관리하기에 스프레드시트가 훨씬 편할 것 같아 나도 같은 방식을 적용하되 파이썬이 아닌 코틀린에 적용하도록 하였다! ↓ 참고한 영상 https://www.youtube.com/watch?v=NfJjaGjVceo 먼저 코틀린 + 스프링부트로 프..
-
코틀린 기초 문법 ③KOTLIN 2022. 9. 28. 22:37
참고한 강의와 책은 이전 블로그 글에 올려두었다. https://dodop-blog.tistory.com/391 코틀린 기초 문법 ① 요즘 코드가 Java -> Kotlin으로 넘어가고 있고, 사용이 많고 동기 분들을 보니 모두 코틀린 공부를 하고 계셔서 Kotlin 공부를 시작했다. 노션에 따로 적으면서 공부하긴 했지만, 블로그에도 함께 적 dodop-blog.tistory.com 책이 후반부로 가면서 점점 어려워지고 있어서 고민이다 🤦♀️ inline함수 같은 경우 어떻게 컴파일이 되는지 이해가 되지 않아서 고민이었는데 동기 분이 알려주셔서 실제 컴파일 내용을 확인해 볼 수 있었다! 🙌 제너릭스 같은 경우는 정리가 제대로 되지 않아 다시한번 읽고 내용을 추가할 예정이다! (완료) 고차함수 파라미터와..