분류 전체보기(17)
-
자바의 생성자와 정적 팩토리 메서드
생성자 일반적으로 클래스는 인스턴스 필드와 생성자를 갖는다. row와 column으로 이루어진 Position 클래스는 아래와 같이 표현할 수 있다. public class Position { private final int row; private final int column; public Position(int row, int column) { this.row = row; this.column = column; } } 만약 파라미터로 Int 뿐만 아니라 String도 받게 하고 싶다면 아래와 같이 코드를 추가할 수 있다. public class Position { private final int row; private final int column; public Position(int row, int..
2020.04.20 -
Intelij 단축키 - 알아두면 생산성이 올라가는 단축키 모음
최근에 대부분의 프로그래밍을 페어로 진행한다. 새로운 페어와 프로그래밍을 하면 가장 먼저 눈에 들어오는 것이 그 사람이 사용하는 단축키다. 자연스럽게 서로 사용하는 단축키들을 공유하게 된다. 그렇게 두 달 정도 새로운 단축키를 익혀서 사용하니, 예전에 단축키를 사용하지 않을 때는 어떻게 프로그래밍을 했나 싶을 정도로 편하다. 언제 가는 키보드에서 손을 떼지 않고, 모든 작업을 할 수 있을 날이 올 수 있겠지. 아래는 내가 자주 쓰는 단축키들이다. 자신이 사용하는 편리한 단축키가 있다면 공유해보는 것도 좋을 것 같다. 커서 관련 단축키들 Mac Window 단어 단위 이동(선택) Opt + (Shift) + ← → Ctrl + (Shift) + ← → 라인 처음/끝으로 이동(선택) Cmd + (Shift)..
2020.04.20 -
자바의 Enum
처음 자바의 Enum을 알고 난 뒤, 여기저기 유용하게 사용했다. Enum은 기본적으로 상수의 그룹을 나타낼 때 사용하는데, 자바의 Enum은 다른 언어의 Enum보다 강력한 기능을 여럿 제공한다. 이번 포스팅에서는 Enum을 활용하는 여러 방법에 대해 알아보려고 한다. 선언과 사용 public enum Rank { FIRST_PLACE(6), SECOND_PLACE(5), NONE(-1); private int matchingCount; Rank(int matchingCount) { this.matchingCount = matchingCount; } }이 때, Rank는 Enum 타입이 되고 FIRST_PLACE, NONE 등은 Enum 상수가 된다. 각 상수들은 일반 클래스와 동일하게 필드를 가질 수..
2020.04.18 -
자바의 예외처리
에러(Error) vs 예외(Exception) 자바에서 에러는 정상적인 프로그램이 잡아낼 수 없는 치명적인 문제를 뜻한다. 즉, 에러가 발생하면 복구가 불가능하고 프로그램은 비정상적으로 종료된다. 대부분 runtime 중에 일어난다. 흔히 볼 수 있는 에러로 StackOverFlowError가 있다. 반면 예외는 정상적인 프로그램이 잡아내길 원하는 조건을 뜻한다. 예외가 발생하면 프로그램이 종료될 수 있으나, 이는 try, catch, throw 등의 키워드로 복구가 가능하다. 모든 예외는 runtime 중에 일어난다. 에러와 예외는 모두 java.lang.Throwable 클래스의 자식 클래스이다. 예외 종류 - Checked vs Unchecked Unchecked Checked 예외처리 여부 명시..
2020.04.18 -
go cui에서 한글 출력 문제로 인한 삽질 기록
go-cui에서 채팅 출력 기능을 구현한 뒤, 한글이 화면에 제대로 출력되지 않던 문제가 발생했다. *"hi, 안녕하세요" 를 입력하면 "hi, 안하요" 라고 출력되었는데 이 부분을 고쳐보기로 했다.* g.Update(func(g *gocui.Gui) error { v, _ := g.View("chatline") info := fmt.Sprintf("%s", cm.jsonMessage.Content) v.Write([]byte(info)) return nil }) 문제가 발생한 코드의 일부다. 먼저 "chatline" 이라는 View를 가져오고, 컨트롤러에서 보낸 메세지를 info 에 담는다. (info에는 "hi, 안녕하세요"라는 string이 담길 것이다) 그 다음, 가져온 View에 Write() ..
2020.04.17