본문 바로가기 메뉴 바로가기

밤낮개발

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

밤낮개발

검색하기 폼
  • 분류 전체보기 (61)
    • Java (5)
    • Intellij (1)
    • Algorithms (15)
    • Infrastructure (8)
    • Web Framework (8)
    • Database (6)
    • Project (12)
    • 잡담 (1)
    • CS (5)
  • 방명록

전체 글 (61)
Kafka 메시지 브로커 활용기 - 1

개요 📝A 사에서 진행하는 x 프로젝트에서는 기존에 A 사에 구축된 시스템과 연동을 통해 데이터를 받아오는 로직이 존재했었다. 새롭게 A 사에서 수주한 y 프로젝트는 x 프로젝트가 받아오는 데이터가 필요했으나, x 프로젝트와 같이 A 사 시스템과의 연동은 보안 문제로 허용되지 않는 상황이었다. 결국 x 프로젝트에서 A 사와 연동해 가져온 데이터를 y 프로젝트 쪽 DB로 넘겨주는 방안이 필요했고, 이를 위해 메시지 브로커인 Kafka를 사용하게 되었다. 내용 📌앞에서 설명했듯이, 나는 데이터를 주고받는 중계자의 역할로서 Kafka를 활용하게 되었다. API 가 아닌 외부 브로커인 Kafka를 사용했던 이유는 데이터 송수신 간 아래와 같은 장점이 있기 때문이었다:Kafka를 사용하는 애플리케이션 인스턴스..

Project 2024. 12. 3. 09:04
FCM (Firebase Cloud Messaging) 사용기 - 1

FCM 이란?Firebase Cloud Messaging 의 줄임말로, 메시징 기능을 클라우드 서버에서 제공해주는 구글의 서비스이다. 개요프로젝트를 하는 도중에 FCM 을 사용해 볼 수 있는 기회가 생겼다. 용도는 특정 알림 기능을 모바일 단말에 푸시로 전달하는 것이었다. 기존에 구현되어 있는 기능이었으나, 최근에 FCM Legacy API 가 만료됨에 따라 V1 으로 마이그레이션하는 작업을 하게 되었다.FCM 동작 플로우프로젝트 생성먼저 FCM 은 위에서 언급한대로 클라우드 서버에서 기능을 제공하기 때문에, 어떤 프로젝트 하위에서 푸시를 주고받을 건지 정해야 한다. 그래서 프로젝트를 생성하면 아래와 같은 페이지로 관리가 가능하다:  관리자 페이지는 프로젝트별로 생성이 되고, 프로젝트 정보는 아래 항목들..

Project 2024. 10. 1. 00:52
레디스 활용기 - 2

새로운 프로세스 구현하기앞서 레디스 활용기 - 1 는 어떻게 레디스를 활용하기로 결정하게 되었는지에 대한 내용이었다면, 이번에는 그 구체적인 구현 방식을 소개해 보고자 한다.레디스의 특징구현을 하기 위해 학습해야 했던 레디스 (Redis) 의 몇몇 특징은 다음과 같다: 레디스는 key-value 형태로 데이터를 저장한다.value 는 hkey-value 형태 또는 그냥 문자열이다.key 가 문자열인 데에 반해, hkey 는 해시 값으로 인식된다.여러 명령어를 통해 key / hkey / value 를 다룰 수 있다. 몇 가지 자주 사용되는 명령어들은 아래와 같다:get {key 이름} : key-value(문자열) 인 경우에 {key 이름} 에 해당하는 value 를 반환한다.hget {key 이름} {..

Project 2024. 7. 8. 22:50
레디스 활용기 - 1

📌 개요현재 사물 또는 사람에게 부착된 IoT 기기로부터 BLE 신호 형태로 수신되어 정제된 데이터를 RDB 에 쓰고, 다시 읽어서 상태 (위치 등) 를 모니터링 할 수 있는 소프트웨어 개발 및 운영에 참여하고 있는 중이다.사업은 병원들을 위주로 전개하고 있으며, 각 클라이언트마다 서로 다른 요구사항들을 갖고 있다.약 3년 전 이 모니터링 소프트웨어를 설치하여 지금까지 개발 및 유지보수를 해주고 있는 Y 병원에서 한 달 전쯤 이슈제기를 해왔다:방문자 출입기록과 로그 데이터가 일치하지가 않습니다!  방문자 출입기록은 말 그대로 병원에 각기 다른 목적으로 방문하는 다양한 사람들의 현황을 IoT 기기 (Y 병원에서는 스마트폰 앱) 를 이용하여 파악하고 정리한 기록이다. 회사에서 개발 중인 모니터링 소프트웨어..

Project 2024. 5. 28. 22:30
@@sql_mode 변경 방법

...which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 위 에러가 발생해서, 확인해보니 full_group_by 옵션이 켜져 있어 group by 절에 없는 컬럼은 어느 부분에 표시해야 할 지 정하지 못해서 발생하는 문제라고 한다. full_group_by 옵션을 끄기 위해, 구글링을 해봤다. 먼저 아래 쿼리로 full_group_by 옵션이 설정되어 있는지 확인했다:쿼리: select @@sql_mode;결과 (@@sql_mode 컬럼의 값): ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DAT..

Project 2024. 5. 23. 18:41
[Spring] Controller 메서드 파라미터에 어노테이션이 안 붙어있을 때

기본적으로 String, Long 타입은 @RequestParam 을 붙였을 때와 같이, 이외의 클래스 객체는 @ModelAttribute 를 붙였을 때와 같이 동작합니다.

Web Framework 2023. 11. 10. 11:17
[기술면접] General Interview Questions

1. 컴포넌트와 모듈의 차이 ① 컴포넌트: 런타임 개체 단위 ② 모듈: 실질적으로 구현이 된 단위 ※ 서버 / 클라이언트 구조에서 서버 1개 · 클라이언트 100개라면? → 모듈: 서버 1 + 클라이언트 1 = 2개 → 컴포넌트: 서버 1 + 클라이언트 100 = 101개 2. 자바란? "Write once, Run anywhere" 라는 특성의 객체지향 언어 3. 자바의 구동원리 ① 컴파일러가 코드를 검증하고 JVM이 읽는 바이트 코드 (.class) 로 변환한다. ② JVM 으로 바이트 코드를 가져온다. ③ 바이트 코드가 올바른지 검증한다. ④ 인터프리트한다. ⑤ 바이트 코드를 바이너리 코드로 변경하고 JVM 의 클래스 영역에 저장한다. ⑥ 런타임 과정에서 클래스들의 static 변수를 자동으로 초기..

CS 2023. 10. 11. 23:38
[Spring] Interview Questions for Beginner

스프링 프레임워크 핵심은 IOC (제어의 역전), DI (의존성 주입) 이다. 스프링 빈 스프링 빈의 특징 스프링 빈은 Singleton 으로 생성해 메모리나 성능 최적화에 유리하다. IOC (제어의 역전) 객체의 제어권을 다른 대상에게 위임한 것으로, 개발자 (또는 애플리케이션 코드) 가 아닌 프레임워크가 객체의 생성부터 소멸까지 관리하게 되는 것을 말한다. DI (의존성 주입) 한 클래스와 다른 클래스 사이의 의존 관계를 컨테이너가 빈을 가지고 자동으로 연결해주는 것을 말한다. AOP (관점 지향 프로그래밍) 프록시 패턴 기반의 구현체를 사용한다. 중복 제거, 객체 간 복잡도 증가에 대한 해결책이 될 수 있다. POJO 마틴 파울러는 EJB 에서 돌아서서 POJO 로 돌아와야 한다고 이야기했다. 비즈..

CS 2023. 9. 22. 07:34
이전 1 2 3 4 ··· 8 다음
이전 다음
공지사항
최근에 올라온 글
  • Kafka 메시지 브로커 활용기 - 1
  • FCM (Firebase Cloud Messagi⋯
  • 레디스 활용기 - 2
  • 레디스 활용기 - 1
최근에 달린 댓글
  • 오우 오랜만이군 ㅋ
  • 다행이네요! 화이팅입니다 :)
  • 감사합니다 ㅠㅠ 덕분에 하루종일 붙잡고 있던거 해결했습⋯
  • 열씨미 합시다
Total
7,205
Today
2
Yesterday
4
링크
TAG
  • 도커
  • Firebase
  • 인증/인가
  • 지연 로딩
  • google cloud
  • FCM
  • 기지국 설치
  • Spring Boot
  • 프로그래머스
  • Jackson
  • DeSerialization
  • JPA
  • JOIN FETCH
  • JPQL
  • 역직렬화
  • 깃랩
  • N+1
  • Java Data Types
  • 알고리즘
  • 코테
  • ci/cd
  • spring
  • @RequestBody
  • LazyInitializationException
  • 실시간데이터
  • gitlab
  • docker
  • json web token
  • 가상 서버
  • DTO
more
«   2026/07   »
일 월 화 수 목 금 토
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바