Hothead Factory
취소

JetBrains Toolbox를 이용해 리눅스에 IntelliJ 쉽게 설치하기

맥이나 윈도우와 달리, 리눅스는 인텔리제이 다운로드 시 공식 홈페이지에서는 설치 가능한 패키지 대신 바이너리 파일로만 제공된다.그렇기 때문에 설치 후 런처에 아이콘이 나타나지 않는다거나 실행 파일을 지워버렸다거나 하는 사례들을 자주 접할 수 있는데, 리눅스도 버튼 하나로 깔끔하게 설치할 수 있는 방법이 있어 공유한다. (우분투의 경우 소프트웨어 센터...

우아한테크코스 레벨 1 결산

우아한테크코스가 시작된 지 어느덧 두 달이 되었고 레벨 1의 끝을 바라보고 있다. 느낀 점을 간단히 정리해 보았다. 우테코에서의 9주 우테코에 와서 처음 받은 미션은 ‘페어 프로그래밍’으로 진행하는 문자열 계산기 만들기와 6명 팀으로 진행하는 연극이었다. 먼저 페어 프로그래밍은 두 명이 1대의 컴퓨터로 돌아가면서 코드를 짜는 것인데, 처음이다 보니 ...

SOLID 설계 원칙

SOLID 설계 원칙이란 다음을 뜻한다. 단일 책임 원칙(Single Responsibility Principle) 개방-폐쇄 원칙(Open-Closed Principle) 리스코프 치환 원칙(Liskov Substitution Principle) 인터페이스 분리 원칙(Interface Segregation Principle) 의...

씽크패드 X1 Carbon 5세대 액정 4K로 개조하기 – 2. 성공(?)

https://blog.h2f.kr/?p=1867 지난번에 이 글을 쓰고 사흘 만에 패널을 질렀다. NV140QUM-N51 패널이다. 그런데도 후속 포스팅이 이렇게 늦어진 건 코로나19로 인한 항공편 감소로 배송이 한 달이나 걸렸기 때문이다. [안전하게 배송된 4K LCD] [분해할 땐 안전하게 내장 배터리를 비활성하고 ㄱㄱ] ...

자바의 함수형 인터페이스

자바에서 일급 객체라는 것은 다음과 같은 조건을 만족해야 한다. 변수에 담을 수 있어야 한다. 인자로 전달할 수 있어야 한다. 리턴값으로 전달할 수 있어야 한다. 자바의 메소드는 이러한 조건들을 만족하지 못하기에 일급 객체가 아니다. 따라서 함수가 일급 객체인 자바스크립트 등과 달리 함수형 프로그래밍 언어라고 할 수 없다. 이런 ...

시끄러운 아이폰 재난 문자 조용히 받기

요즘 코로나 때문에 매일매일 재난 문자가 울린다. 그런데 내용은 마스크 구입 정보, 확진자 동선 같은 급하지 않은 ‘정보’에 가까운데도, 항상 위급한 상황인 양 우렁차게 울려대는 내 아이폰.이 이유가 한국 재난문자 표준에 따른 ‘공공 안전 경보’와 ‘긴급 재난 문자’를 아이폰이 구분하지 못해서 그런 거라는데, 마침 타이밍 좋게 iOS 13.4 베타에 ...

불변성 (Immutability)

불변성이란 한번 생성된 객체가 생명 주기 동안 어떤 상황에서도 상태 (인스턴스 변수의 값) 가 변하지 않음을 뜻한다. setter를 뚫어 놓는다면 당연히 그 객체는 불변하지 않다. getter 역시도 값을 JVM Stack에 저장하지 않고 heap의 메모리 주소의 참조값을 제공하는 자료형을 리턴하는 (예: Collection) 경우 값을 hard c...

자바 HashMap 뜯어보기

자바의 HashMap은 기존의 HashTable 대신에 사용되는 Map을 구현한 자료형이다. 즉 Key와 Value를 가지며 거기에 추가로 고유한 특성으로 ‘해시’를 이용하여 많은 양의 데이터 속에서 더 빨리 원하는 값을 찾을 수 있다. HashMap의 Key와 Value에는 어떤 값이든 지정하여 저장할 수 있다. `private static Ma...

추상 클래스/상속과 인터페이스의 차이

자바에서 상속은 개념적으로는 부모 클래스의 멤버 변수와 메소드를 가져다 사용할 수 있는 자식 클래스를 생성하는 것이며, 구조적으로는 비슷한 클래스들의 공통되는 부분을 합쳐서 중복되는 코드를 줄일 수 있는 방법이다. 우테코 미션 중 하나인 블랙잭 게임을 예로 들어보면, 블랙잭 게임의 구성원은 한 명의 딜러와 여러 명의 플레이어로 나뉘는데, 이들이 취하...

Objects 클래스가 제공하는 유틸리티 메소드

java 7에서 추가된 Objects 클래스의 유틸리티 메소드를 다음과 같이 활용할 수 있다. 객체를 생성할 때 null이 들어오는것을 걸러내기 위해 다음과 같이 코드를 짜는 경우가 많은데 `private void isSame (String str, String expected) { if (string != null || string.equ...