/images/profile_no_background.png

김영천 블로그

JPA OneToMany 필드의 StackOverflowError

JPA를 사용하다 보면 StackOverflow 에러를 종종 만날 수 있다. 이 글에서는 필드 타입이 Set인 Collection 타입에 아이템을 추가할 경우 StackVoerflow 에러가 발생하는 원인과 그 해결법에 대해 알아보자.

`hashcode`, `equals` 메서드와 관계된 이야기이다.

이맥스에서 lsp-mode를 이용해 자바 개발환경 셋팅하기

이맥스에서 자바 개발환경을 셋팅해보자. 우선 기본적으로 이맥스와 자바, gradle 등등은 설치가 되어있다고 가정한다. 포스트 작성 기준은 아래와 같다.

  • OS: ubuntu 18.04 LTS
  • emacs: GNU Emacs 25.2.2
  • java: openjdk version "1.8.0_212"
  • gradle: Gradle 4.10.2

이 포스트에선 개발환경 셋팅을 위해서 lsp-mode를 이용할 예정이다. 본격적으로 셋팅하기에 앞어서 lsp가 무엇인지 간단하게 한번 알아보자

이맥스 폰트, 세벌식 셋팅하기

아래의 내용을 .emacs 파일 안에 복붙해주자. 세벌식 버전은 최종이 아닌 390버전이다.

1
2
3
4
5
6
7
(set-fontset-font t 'hangul (font-spec :family "D2Coding"))

(set-language-environment "Korean")
(prefer-coding-system 'utf-8)
(setq default-input-method "korean-hangul390")
(setq default-korean-keyboard "390")
(global-set-key (kbd "<S-kana>") 'toggle-input-method)

tinode series.002 - Install & Run

서론

소스코드를 살펴보기에 앞서서 일단 프로그램 실행을 시켜보자. 이 글에서 설명하는 예제는 커밋 아이디 기준 2558db90a50c80c974c2fccfec6b87ea44e4758b을 바탕으로 설명한다. 사실 이 글을 안봐도 여기를 따라하면 보통을 무난하게 설치 및 실행을 할 수 있다. 이 가이드는 공식 가이드 중 Building from Source, Mysql을 기준으로 설명한다.

tinode series.001 - Intro

인스턴스 메시징?

요즘에는 어느 서비스를 이용하든 대부분 실시간 채팅은 기본으로 지원한다. 페이스북, 트위터같은 서비스는 물론이고 트위치, 유튜브 같은 동영상 기반 플랫폼도 실시간 채팅을 기본적으로 지원한다. 사실 과거에 2G폰에서 문자메세지를 주고받던 시절부터 현재 카카오톡, 텔레그램같은 실시간 인스턴트 메세징 앱에 이르기까지 플랫폼의 변화만 있을 뿐 글자를 이용한 실시간 의사소통은 현대인에게 상당히 익숙한 의사소통 방법이다.