목록전체 글 (153)
민스씨의 일취일장

WebSocket 통신을 위한 간단한 Flutter UI를 구성해 보았다.WebSocket - Flutter 프론트 구성하기1. Flutter 프로젝트 생성기본 프로젝트에 추가해 줄 의존성은 하나이다.web_socket_channelflutter pub add web_socket_channel2. UI 구성간단하게 버튼을 누르면 숫자를 서버로 보내서, 메시지를 받도록 구성해 보았다. 메시지를 받으면 숫자를 1씩 늘려줘 몇번 통신을 주고 받았는지 표시하였다.final WebSocketChannel channel = WebSocketChannel.connect(Uri.parse('ws://localhost:8080/ws'));var cnt = 1;@overrideWidget build(BuildCo..

백준 16916 문제를 해결하는 과정에서 사용한 KMP 알고리즘에 대한 기록이다.h.o.Algorithm - Java 백준 16916문제두 개의 문자열이 주어진다. 두 번째 문자열이 첫 번째 문자열에 포함되는지 여부를 판단하는 문제이다.풀이String.contins()를 이용한 풀이간단하게 String.contains() 메소드를 이용해서 문제를 해결을 시도하였다.import java.io.*;public class baekjoon16916 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

WebSocket 통신을 위한 간단한 Spring 서버를 구성해 보았다.WebScoekt - Spring 백엔드 구성하기1. Spring Initializr를 이용해 프로젝트 생성하기필요한 의존성- Spring Boot Starter Web- Spring WebSocket2. WebSocketHandler와 WebSocketConfig 작성하기현재 작성할 Handler는 클라이언트가 서버와 WebSocket 통신을 처리를 목적으로 한다.@Componentpublic class CTOSWebSocketHandler extends TextWebSocketHandler { @Override protected void handleTextMessage(WebSocketSession session, Te..

WebSocket에 대해 공부한 내용이다.처음 공부하는 WebSocket WebSocket이란?WebSocket은 양방향 통신을 지원하는 프로토콜이다. 서버와 클라이언트 사이에서 실시간 데이터 교환이 필요한 경우 사용한다. 실시간 통신에 있어서 HTTP 보다 효율적이고, 지속적인 연결을 유지할 수 있다.WebSoket를 잘 이해하기 위해서 핵심 개념 3가지를 알아야 한다.핸드쉐이크 (Hand Shake)지속 연결 (Persistent Connection)이벤트 기반 통신 (실시간 제공 Real-Time Push)1.핸드 쉐이크 (Hand Shake)WebSockt 연결은 일반적인 HTTP 요청으로 시작되지만, 연결된 이후에는 지속적으로 연결을 유지한다. 처음 WebSocket 연결을 하기 위해선 여전히 ..

Java Map.Entry에 대한 글이다.Java Map은 순회가 안된다?Map은 순회가 안된다 단순하게 학습한뒤, Map의 순회가 필요할 땐 별도의 데이터 구조(List, Array, Set)를 이용해 순회를 처리했었다. 하지만 이렇게 사용할 때, 로직이 복잡해질 수록 코드가 점점 복잡해지는 문제가 생겼다. 그래서 좀 더 자세히 알아보니 Map도 순회를 처리할 수 있는 방법이 있다는 것을 알게되었다. 방법은 바로 Map.Entry(EntrySet)를 사용하는 것이다.Map.Entry란?Map.Entry는 Java의 Map 인터페이스 내부에 존재하는 인터페이스로, Map에 저장되어 있는 키-값 쌍(Entry)을 관리하는 데 사용된다.이후 Key-Value 한 쌍을 Entry라고 부르겠다.EntrySetE..

인텔리제이에서 DisplayName이 안뜰 때 해결방법에 대한 글이다.IntelliJ - Test 수행 시 DisplayName 안뜨는 이슈현상IntelliJ에서 Test 수행 시 설정해 놓은 DisplayName이 뜨지 않는 이슈가 발생했다.체크리스트DisplayName은 JUnit5 부터 사용가능하다.해결방법JUnit5를 사용하는데 DisplayName이 안뜰 때에는 Build 툴을 변경해볼 수 있다. IntelliJ에서 Gradle을 이용해 프로젝트를 진행하면 기본적으로 Gradle을 Build 툴로 사용한다. 이를 IntelliJ로 변경할 수 있다.IntellliJ > SettingsBuild, Execution, Deployment > Build Tools > Gradle해당 탭에서 Gradle..

shared_preference 사용방법에 대한 글이다.Flutter - shared_preference 사용 방법shared_preferences란?shared_preferences는 Android와 iOS의 네이티브 저장소를 사용하기 위해 사용하는 플러그인이다. 네이티브 저장소를 사용할 때, Android는 SharedPreferences API를, iOS는 NSUserDefaults를 사용한다. Flutter에서 shared_preferences는 이 둘을 감싸고 있어 하나의 코드로 함께 다룰 수 있도록 도와준다.사용방법1️⃣ 패키지 설치하기pubspec.yaml에 패키지를 추가해준다.dependencies: shared_preferences: latest_version추가(설치) 후 flutte..

자바 빈줄처리에 대한 글이다.Java - 빈줄 처리백준 문제를 풀다보면 마지막 입력이 더이상 없으면 연산을 멈추는 방식으로 문제가 나오는 경우가 있다. 이 때 필요한 것이 빈줄 혹은 EOF (End Of File)을 처리할 수 있어야 한다. 매번 감으로만 하다가 확실히 알아보기 위해 하나하나 살펴보려고 한다.📌 처리대상일단 BufferedReader를 이용해 문자열을 받는다.String str = br.readLine();이렇게 입력받은 문자열을 비교해 while문을 작성할 것이다.📌 입력 예시YdMins is a web fullstack engineer.Full-stack covers not only front- and backend, but also DevOps.!=null을 이용한 처리일단 정답..

Flutter로 만든 안드로이드 앱 배포 준비 과정 글이다.Flutter로 만든 안드로이드 앱 배포 준비 과정버전 관리가장 먼저 해야 할 일은, 버전을 관리하는 것이다. 하나의 애플리케이션의 버전은 유일해야 하기 때문에 변경 수준에 맞게 버전을 관리해 줘야 한다. 버전 관리는 pubspec.yaml 파일의 version 속성값 관리를 뜻한다.version : major.minor.patch+versionex)version : 1.1.1+15여기서 1.1.1을 버전 이름(version name)이라 하며, 15를 빌드 넘버(build number)라 부르는데, 안드로이드는 버전 코드(version code) iOS에서는 프로젝트 버전(project version)이라고 부르기도 한다.버전 관리 예시1.0...