본문 바로가기
728x90
반응형

코틀린12

친환경 쇼핑몰 프로젝트 구축하기: 백엔드 상품 관리 기능 구현 - 엔티티, 리파지토리, 서비스와 이미지 저장 방식 적용 (4) 이번에는 백엔드 상품 등록 및 변경 기능을 구현해보겠습니다. 먼저 상품 엔티티를 등록합니다. import javax.persistence.* @Entity @Table(name = "products") data class Product( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, val name: String, val description: String, val price: Float, val imageUrl: String? = null ) 리파지토리 구현 import com.hsproject.envmarket.products.Product import org.springframework.data.jpa.re.. 2023. 6. 26.
친환경 쇼핑몰 프로젝트 구축하기: 스프링 부트와 JWT를 활용한 회원가입 및 로그인 기능 구현 - 보안 설정 및 인증 과정 개요 (2) 백엔드 회원가입 및 로그인 기능을 구현해보겠습니다. 자바 17, 스프링부트, 그래들, 코틀린, postgres, 스프링 security를 사용합니다. 가장 먼저 저는 사용자보안으로 jwt 를 사용할겁니다. import com.hsproject.envmarket.oauth.RoleName import com.hsproject.envmarket.util.JwtAuthenticationEntryPoint import com.hsproject.envmarket.util.JwtAuthorizationFilter import lombok.RequiredArgsConstructor import org.springframework.beans.factory.annotation.Autowired import org.spr.. 2023. 6. 26.
코틀린의 확장 함수, 유형 별칭, 봉인된 클래스를 알아보자 1. 확장 함수(Extension Functions): 확장 함수는 이미 존재하는 클래스에 새로운 함수를 추가하는 기능입니다. 다음은 문자열(String) 클래스에 확장 함수를 추가하는 예시입니다: fun String.removeWhitespace(): String { return this.replace(" ", "") } fun main() { val str = "Hello World" val newStr = str.removeWhitespace() println(newStr) // 출력: HelloWorld } 위의 예시에서 removeWhitespace()는 String 클래스에 새로운 함수를 추가합니다. str 변수에 대해 removeWhitespace()를 호출하면 공백을 제거한 새로운 문자열을.. 2023. 6. 26.
Ktor와 같은 프레임워크를 사용하여 웹 개발 Ktor는 Kotlin 기반의 비동기 웹 애플리케이션 프레임워크 로, 간편한 사용법과 뛰어난 성능을 제공합니다. Ktor를 사용하여 웹 개발을 시작하는 방법은 다음과 같습니다: 1. 프로젝트 설정: Kotlin 기반의 프로젝트를 생성하고, build.gradle 파일에 Ktor 라이브러리를 추가합니다. 2. 라우팅 설정: Ktor는 HTTP 요청을 처리하기 위해 경로(routing)를 설정합니다. 경로에 대한 처리기(handler)를 등록하여 요청을 처리하고 응답을 반환합니다. 3. 핸들러 구현: 경로 처리기(handler)를 구현하기 위해 Routing 블록 내에서 HTTP 메서드(GET, POST, PUT 등) 및 경로에 대한 처리를 작성합니다. 예를 들어 GET 요청에 대한 응답 핸들러는 get 함.. 2023. 6. 26.
UI 디자인, 레이아웃 및 활동을 포함하여 Android 앱 개발에 Kotlin을 사용하는 방법 Android 앱 개발을 위해 Kotlin을 사용하는 방법 1. Kotlin 지원 프로젝트 생성: Android Studio를 열고 프로젝트를 생성할 때, Kotlin을 지원하는 프로젝트를 선택합니다. "Kotlin"으로 프로젝트 언어를 설정하고, Kotlin Android Extensions를 활성화할 수 있습니다. 2. UI 디자인 및 레이아웃: res/layout 디렉토리에서 XML 레이아웃 파일을 생성하고, 드래그 앤 드롭이나 XML 코드를 사용하여 UI 요소를 배치하고 디자인합니다. Kotlin을 사용하여 해당 XML 레이아웃 파일에서 UI 요소를 참조할 수 있습니다. 3. 활동(Activity) 구현: Kotlin을 사용하여 활동을 구현하려면 Activity 클래스를 만들고 AppCompatA.. 2023. 6. 26.
코루틴을 활용한 비동기 프로그래밍 기초: 예제를 통한 병렬 작업 이해 및 실행 코루틴은 비동기 프로그래밍을 간편하게 작성하고 관리하기 위한 방법 중 하나입니다. 코루틴은 실행을 멈추고 재개할 수 있는 일종의 경량 스레드라고 볼 수 있습니다. 일반적인 비동기 프로그래밍에서 콜백 혹은 Promise를 사용해야 하는 번거로움을 줄여줍니다. 여기 예시를 통해 코루틴을 사용한 비동기 프로그래밍의 기초를 설명해 드리겠습니다. import kotlinx.coroutines.* fun main() { // 비동기 작업을 위한 코루틴 스코프 생성 val scope = CoroutineScope(Dispatchers.Default) // 코루틴 실행 및 비동기 작업 scope.launch { println("비동기 작업 시작") val result = async { // async는 결과를 반환하는.. 2023. 6. 26.
Kotlin의 null 안전 기능에 대한 개요와 null 포인터 예외를 방지하는 법 Kotlin에서 null은 1급 시민입니다. 즉, 모든 유형의 변수에 할당할 수 있는 적법한 값입니다. 그러나 이로 인해 코드가 null 값에 액세스하려고 시도할 때 null 포인터 예외가 발생할 수 있습니다. 1. Null 허용 유형: Kotlin에서는 유형에 '?'를 추가하여 변수를 null 허용으로 표시할 수 있습니다. 이는 변수가 null일 수 있음을 컴파일러에 알리고 null 값을 명시적으로 처리하도록 합니다. ex). val name: String? = null // variable 'name' can be null if (name != null) { println("Hello, $name") } else { println("Name is null") } 2. 안전한 호출 연산자: 안전한 호출.. 2023. 4. 13.
목록, 맵, 세트, ​​반복자를 포함하여 Kotlin의 컬렉션 프레임워크를 사용하는 방법 1. 목록: 목록은 정렬된 요소 모음입니다. Kotlin에서 목록은 기본적으로 변경할 수 없지만 MutableList 인터페이스를 사용하여 변경할 수 있습니다. ex). val myList = listOf("apple", "banana", "cherry") val mutableList = mutableListOf("apple", "banana", "cherry") 2. 맵: 맵은 각 키가 고유한 키-값 쌍의 모음입니다. Kotlin에서 맵은 기본적으로 변경할 수 없지만 MutableMap 인터페이스를 사용하여 변경할 수 있습니다. ex). val myMap = mapOf("a" to 1, "b" to 2, "c" to 3) val mutableMap = mutableMapOf("a" to 1, "b" t.. 2023. 4. 12.
고차 함수, 람다 및 함수형 프로그래밍 개념에 대한 Kotlin의 지원 1. 고차 함수: 고차 함수는 다른 함수를 인수로 받거나 함수를 결과로 반환하는 함수입니다. 이는 함수형 프로그래밍에서 강력한 개념입니다. 복잡한 동작을 추상화하고 함수를 함께 구성할 수 있기 때문입니다. ex). fun applyOperation(x: Int, operation: (Int) -> Int): Int { return operation(x) } val square = { x: Int -> x * x } val result = applyOperation(5, square) // returns 25 2. 람다: 람다는 상위 함수에 매개변수로 전달할 수 있는 작은 익명 함수입니다. 람다는 동작을 표현하는 간결한 방법이며 Kotlin의 함수형 프로그래밍 지원의 핵심 부분입니다. ex). val my.. 2023. 4. 12.
Kotlin의 클래스, 객체, 상속 및 다형성 1. 클래스: Kotlin에서 클래스는 유사한 속성과 동작을 가진 객체를 만들기 위한 청사진입니다. 클래스는 속성, 메서드 및 중첩 클래스를 포함할 수 있습니다. ex). class Person(val name: String, var age: Int) { fun greet() { println("Hello, my name is $name") } } 2. 객체: Kotlin에서 객체는 클래스의 싱글톤 인스턴스입니다. object 키워드를 사용하여 객체를 생성할 수 있습니다. ex). object Singleton { fun doSomething() { println("I'm a singleton object") } } 3. 상속: Kotlin은 상속을 지원하므로 기존 클래스를 기반으로 새 클래스를 만들 수.. 2023. 4. 12.
728x90
반응형