전체 글97 WebSocket + Spring Boot 도입기 : 웹소켓 심화 지난번에 웹소켓을 학습하고 도입해보면서 방을 여러개 만들어서 여러 방에서 사람들을 나누는 방법에 대해 궁금해졌습니다. 따라서 오늘 해볼것은 "방 여러개 만들어서 채팅하기"입니다. 방 생성하기 user1으로 room에 접속하기 user2도 room에 접속하기 user1으로 TALK 하기 코드 WebSockChatHandler package com.example.websocket.config; import com.example.websocket.dto.ChatMessage; import com.example.websocket.dto.ChatRoom; import com.example.websocket.service.ChatService; import com.fasterxml.jackson.databind.O.. 기타/WebSocket 2024. 1. 5. WebSocket + Spring Boot 도입기 : 웹소켓 기초 build.gradle websocket dependency 추가 implementation 'org.springframework.boot:spring-boot-starter-websocket' config 웹소켓을 사용하기 위해 bean 등록@Component public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } } service WebSocketChatting 서비스 추가 @ServerEndpoint(value = "/chatt") @Service public class WebSocketChatting {.. 기타/WebSocket 2024. 1. 4. Flutter 설치 방법 (feat. mac) 2.0 Installation SDK 설치 Homebrew 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" flutter 설치 brew install --cask flutter [Flutter 설치 오류] Error: It seems there is already a Binary at '/opt/homebrew/bin/dart' brew remove dart brew install --cask flutter Simulator 설치 Xcode 설치 iOS용 Flutter 앱을 개발하려면 Xcode가 설치된 Mac이 필요합니다. Xcode의 최신 안정 버전을 설치합니.. Flutter 2024. 1. 4. Kafka 간단한 개념 정리 (2) Kafka 핵심요소 Broker : 카프카 애플리케이션 서버 단위 Topic : 데이터 분리 단위. 다수 파티션 보유 Partition : 레코드를 담고 있음. 컨슈머 요청 시 레코드 전달 Offset : 각 레코드당 파티션에 할당된 고유 번호 Consumer : 레코드를 polling하는 애플리케이션 Consumer group : 다수 컨슈머 묶음 Consumer offset : 특정 컨슈머가 가져간 레코드의 번호 Producer : 레코드를 브로커로 전송하는 애플리케이션 Replication : 파티션 복제 기능 ISR : 리더 + 팔로워 파티션의 sync가 된 묶음 Rack-awareness : Server rack 이슈에 대응 Kafka Client Kafka 와 데이터를 주고받기 위해 사용하는 .. 기타 2023. 12. 22. Kafka 간단한 개념 정리 (1) Kafka Before Kafka 엔드투엔드 연결 방식의 아키텍쳐였고, 데이터 연동의 복잡성의 증가, 각기 다른 데이터 파이프라인 연결 구조 After Kafka 프로듀서/컨슈머 분리, 메시지 데이터 여러 컨슈머에게 허용, 높은 처리량을 위한 메시지 최적화, 스케일 아웃 가능 Kafka broker 실행된 카프카 app 서버 중 1대 3대 이상의 브로커로 클러스터 구성 주키퍼와 연동 주키퍼 : 메타데이터(브로커id, 컨트롤러id 등) 저장 n개 브로커 중 1대는 컨트롤러 기능 수행 컨트롤러 : 각 브로커에게 담당 파티션 할당 수행. 브로커 정상 동작 모니터링 관리. 누가 컨트롤러 인지는 주키퍼에 저장. Record 객체를 프로듀서에서 컨슈머로 전달하기 위해 Kafka 내부에 byte 형태로 저장할 수 있.. 기타 2023. 12. 21. Flutter의 엔진, Flutter vs React Native Flutter에 관한 정보들 flutter는 다른 보통의 언어들과 달리 운영체제와 직접적으로 통신하지 않는다고 합니다. 그 이유는 Flutter에는 C, C++로 만들어진 엔진이 존재하고, 그 엔진에서 dart 코드를 돌려주는 형태로 Flutter가 동작하기 때문이죠. 이 C, C++로 만들어진 엔진은 VM과 같은 역할을 수행하고, Canvas 같아서 무엇이든 그릴 수 있습니다. Flutter에서 아쉬운 점을 꼽아보자면 ios에서의 UI가 기본 IOS어플의 것들과는 살짝 다르다는 것입니다. Swift의 아이콘과 최대한 비슷하게 Flutter 개발자들이 연구하여 적용했지만, 완벽하게 같지는 않습니다. Flutter vs React Native Flutter 내가 원하는 UI로 디자인 할때 사용 Dart언어.. Flutter 2023. 11. 22. 경기 흐름으로 보는 현대 한국 경제사 1 잠자는 동안에도 돈이 들어오는 방법을 찾지 못한다면 당신은 죽을 때까지 일을 해야만 할 것이다 - 워렌 버핏 - 경기가 순환하다 보면 불황은 피할 수 없다고 합니다. 우리나라는 언제 불황이 찾아왔었을까요? 1973년 1차 오일쇼크 20세기 초부터 영국, 미국 프랑스 등 많은 선진국의 석유회사들이 중동지역으로 몰려들었습니다. 그 이유는 바로 중동 지역에 많은 양의 석유가 나왔기 때문이죠. 이들은 중동에서 원유를 판매하면서 중동 지역 나라들에 아주 적은 양의 수수료만 지급을 했습니다. 이에 불만을 품은 산유국들은 1960년 OPEC(Organization of Petrolem Exporting Countries, 석유수출국기구)을 결성하여 본인들이 독자적으로 결정하겠다고 선언했습니다. 이 때문에 1973.. 경제 2023. 11. 14. 한눈에 알아보는 통화 정책과 경기 조절의 핵심 새로운 이론을 발견한다는 것은 산에 올라 새롭고 넓은 시야를 갖게 되는 것과 같다. - 애덤스미스 - 통화 정책이란? 현대 사회에서는 보통 중앙은행이 통화 정책을 편다고 합니다. 우리나라에서는 한국은행이 중앙은행의 역할을 수행한다고 해요. 통화 정책의 원래 목적은 경기정책이 아닙니다. 하지만 경기정책으로 사용이 가능하다고 합니다. 예시를 들어볼게요. Ex 1) 경기가 좋지 않은 경우 경기가 나빠지면 기업들이 투자를 하지않으려고 합니다. 투자를 하더라도 사람들이 돈을 쓰지 않으니 은행에서 대출을 받더라도 그 이상으로 돈을 벌기가 힘들겁니다. 이 때, 중앙은행에서 시장금리를 낮추게 된다면 금리가 싸지니 기업에서 투자를 할 때, 약간의 이익만으로 이자 이상으로 돈을 벌 수 있게 되고, 많은 기업을이 대출을 하.. 경제 2023. 11. 13. [Flutter] Exception caught by image resource service : HTTP request failed, statusCode: 403 노마드코더님의 Flutter로 웹툰 앱 만들기 를 수강하다가 6.8 Webtoon Card 부분에서 오류가 발생했습니다. 똑같이 따라했는데 오류가 난 것을 보니 아마 Flutter가 업데이트 되면서 해당 오류가 발생하는 것으로 보입니다. ════════ Exception caught by image resource service ════════════════════════════ HTTP request failed, statusCode: 403, [https://image-comic.pstatic.net/webtoon/800770/thumbnail/thumbnail\_IMAG21\_d2e1e7ee-fc83-4030-a1e7-200378bc088f.jpg](https://image-comic.pstatic.. Flutter 2023. 11. 10. 프로젝트 구조 readme 작성 방법 github에서 프로젝트를 진행하다보면 readme 파일에 있는 트리구조의 폴더들을 종종 볼 수 있습니다. 이것은 아래와 같은 방법으로 작성하면 됩니다. cmd창에서 root 폴더로 이동 후 아래의 명령어를 입력한다 ```jsx tree > 파일명.txt ``` ** 만약 tree 명령어가 없다면 아래의 명령어를 통해 tree를 사용할 수 있다. ```jsx sudo apt install tree ``` 기타 2023. 11. 9. 프로그래머, 열정을 말하다 - 채드 파울러 며칠 전 생일선물로 프로그래머, 열정을 말하다 책을 선물로 받았습니다. 안그래도 선물을 준 친구 블로그 에 책 후기를 써놨던 걸 보고 읽고 싶었는데 별다방 쿠폰과 함께 센스있는 선물을 보내줬네요!👍 앞으로 이곳에 책을 읽고 느낀점이나 인상깊은 구절을 정리해서 작성해 볼 계획입니다. 책 2023. 11. 8. LINUX(Ubuntu)에서 Mysql 완전 삭제 및 재설치 방법 Ubuntu에서 Mysql 완전 삭제 며칠전 Ubuntu를 이용해서 개발을 하던 도중 Mysql 버전 충돌문제 때문에 오류가 났었습니다. 기존의 데이터가 딱히 없던 상황인지라 그냥 Mysql을 삭제하고 원하는 버전으로 재설치하는 것이 가장 효율적이라고 생각해서 아래와 같은 방법을 통해 Mysql을 완전 삭제 및 재설치를 해보았습니다. # purge : 삭제할 때, 설정 파일도 함께 삭제 # remove : 삭제할 때, 설정 파일은 삭제 안됨 # remove --purge : purge와 동일 sudo apt-get remove --purge mysqlmysql 관련 파일들 리스트 확인 dpkg -l | grep mysql위 커맨드로 확인한 mysql 관련 파일 삭제 sudo apt-get remove -.. LINUX 2023. 11. 6. 이전 1 2 3 4 ··· 9 다음 💲 추천 글