728x90 반응형 자바32 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. 레디스(Redis)를 활용한 네띠 채팅 프로그램 구축: 간단한 적용 방법과 실시간 메시지 저장 이번에는 네띠를 사용한 채팅 프로그램에 레디스를 적용해 보겠습니다. 다음 실습의 연장선입니다. https://rhgustmfrh.tistory.com/29 네띠를 이용한 간단한 통신프로그램 실습 (채팅) 이번에도 간단한 채팅 프로그램을 만들면서 네띠를 배워봅시다. 채팅이 가장 기본인듯 하네요... 1. 디팬던시를 추가해 줍시다. io.netty netty-all 4.1.66.Final 메이븐이나 그래들 둘중에 원하시는걸 사 rhgustmfrh.tistory.com redis.clients jedis 3.7.0 의존성을 추가하겠습니다. jedis는 자바에서 레디스를 사용하기 위한 라이브러리입니다. 챗서버를 수정하겠습니다. package com.netty.chat.testChat.chatServer; imp.. 2023. 3. 5. Redis를 쓰는 이유 및 장점 Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용할 수 있는 오픈 소스 인 메모리 데이터 구조 저장소입니다. Redis는 속도, 확장성 및 대량 데이터 처리 능력 때문에 Java 개발자에게 인기 있는 선택이 되었습니다. 고성능: Redis는 특히 데이터 읽기 및 쓰기와 관련하여 빠른 성능으로 유명합니다.이는 Redis가 기존 디스크 기반 데이터베이스보다 훨씬 빠른 액세스 시간을 제공하는메모리에 데이터를 저장하기 때문입니다. 확장성: Redis는 수평으로 확장하도록 설계되었습니다.많은 양의 데이터와 높은 트래픽 볼륨을 쉽게 처리합니다.따라서 빠르게 확장해야 하는 애플리케이션에 적합합니다. 데이터 구조: Redis는 문자열, 해시, 목록, 세트 및 정렬된 세트.이를 통해 단일 데이터 저장소에서 다.. 2023. 3. 5. 네티를 활용한 간단한 채팅 프로그램 구축: 서버와 클라이언트 쉽게 만들기 이번에도 간단한 채팅 프로그램을 만들면서 네띠를 배워봅시다. 채팅이 가장 기본인듯 하네요... 1. 디팬던시를 추가해 줍시다. io.netty netty-all 4.1.66.Final 메이븐이나 그래들 둘중에 원하시는걸 사용해 주세요. 2. 서버를 생성해 줍니다. public class ChatServer { private final int port; private final List channels = new ArrayList(); public ChatServer(int port) { this.port = port; } public void run() throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup.. 2023. 3. 4. Netty (네띠) 에 대해 알아보자. Netty는 확장 가능하고 견고한 고성능 네트워크 응용 프로그램을 개발하는 데 사용되는 널리 사용되는 Java 네트워크 응용 프로그램 프레임워크입니다. 1. Netty는 간단하고 사용하기 쉽도록 설계되어 초보자와 숙련된 개발자 모두에게 인기 있는 선택입니다. 직관적인 API와 간단한 구성으로 쉽게 시작할 수 있습니다. 2. Netty는 고성능 및 짧은 대기 시간으로 유명하므로 고성능 네트워크 응용 프로그램 개발에 이상적입니다. 네트워크 연결을 빠르고 효율적으로 처리할 수 있는 비차단 I/O 모델을 사용합니다. 3. Netty는 확장 가능하도록 설계되어 많은 수의 연결 및 요청을 처리할 수 있는 응용 프로그램을 구축할 수 있습니다. 이벤트 기반 아키텍처와 논블로킹 I/O 모델을 통해 필요에 따라 쉽게 확장.. 2023. 3. 4. Stomp를 활용한 실시간 채팅 프로그램 구현: 웹소켓 최적화 및 효율적인 메시징 전송 (4) 이번에는 Websocket의 프로세스를 좀더 고도화 하고 메시징에 좀 더 최적화된 방식을 구현하기 위해 Stomp를 적용해 보겠습니다. Stomp란? stomp는 메시징 전송을 효율적으로 하기 위해 나온 프로토콜이며 기본적으로 pub/sub 구조로 되어있습니다. 메시지를 발송하고 처리하는 부분이 명확하여 개발하는 입장에서 명확하게 인지하고 개발 할 수 있는 이점이 있습니다. 또한 통신 메시지의 헤더에 값을 세팅할 수 있어 헤더값을 기반으로 통신 시 인증처리를 구현하는 것도 가능합니다. pub는 publisher(집배원)으로 볼 수 있으며 sub는 subscriber(구독자)로써 여러명이 될 수 있습니다. - 채팅방 만들기 : pub/sub를 위한 topic 생성 - 채팅방 입장 : topic 구독 - 채.. 2023. 2. 24. Java 자바 스프링 부트 채팅 애플리케이션 코드 해석: 핵심 개념 및 활용 방법 이해하기 (3) 지금까지의 코드중에서 제가 잘 모르는 코드를 분석하고 해당 상황에서 왜 쓰였는 지 알아보는 시간을 갖도록 하겠습니다. 1. private, hashset private Set sessions = new HashSet(); - private 키워드는 필드가 선언된 클래스 내에서만 액세스 할 수 있도록 하는 접근 제한자입니다. - Set은 필드의 유형입니다. Set은 중복요소를 포함하지 않는 컬렉션이라는 의미를 가지고 있습니다 - HashSet(); Set 인터페이스를 구현하는 클래스의 새 인스턴스를 만듭니다. - () 빈 괄호는 HashSet이 새 빈 집합을 만드는 기본 생성자로 만들어짐을 나타냅니다. - Set, add, remove, contains, sessions 필드는 집합에서 세션을 추가하거나 .. 2023. 2. 20. Java 스프링부트 채팅 프로그램 확장하기: 여러 채팅방 구현, 컨트롤러 설정 및 테스트 방법 (2) 1편 : https://rhgustmfrh.tistory.com/14 Java 스프링부트를 이용한 채팅 프로그램 구축하기: 웹소켓 활용, 설정 및 테스트 방법 (1) 오늘을 자바 스프링부트 채팅 프로그램 만들기 실습을 진행 하겠습니다. 먼저 spring.io 에서 진행하고자 할 스프링부트 프로젝트를 만들어봅니다. 해당 실습은 자바 17버전과 gradle로 진행 하겠습 rhgustmfrh.tistory.com 2편에서는 채팅방을 여러개 만들어 채팅을 할 수 있게 구현 해 보겠습니다. 클라이언트들은 개별 웹소켓 세션을 가지게 되고 채팅방에 세션 정보를 mapping 시켜 두면 특정 방으로 메시지를 보낼 수 있습니다. 여러 채팅방을 구현하기 위한 구조는 다음과 같이 구현 하였습니다. 1. 채팅 메시지를 구현합.. 2023. 2. 20. 이전 1 2 3 4 다음 728x90 반응형