ohjongsung's Dev Story

Ohjongsung's Dev Story

REST API 기본 정리

REST API 에 관한 이론적인 내용을 체계적으로 하나둘씩 정리해보려고 한다. 이 글에선 REST API 의 기본적인 내용에 대해서 정리하겠다. API “defined methods of communication between various software components”

2018년 07월 07일

자바 캐스팅 - Java Casting

형변환이라 부르기도 하는 Casting은 기본형과 참조형에서 사용가능하다. 같은 종류의 변수끼리 Casting이 가능하고 기본형과 참조형 간의 Casting은 불가능하다. Casting은 단순히 데이터 형을 바꾸는 목적이 아니라, OOP의 특성인 다형성측면에서 활용한다.

2018년 05월 31일

Optional orElse 와 orElseGet 의 차이

Optional default value 를 사용할 때, 헷갈리는 orElse 와 orElseGet 의 차이점을 알아보자. 두 기능은 서로 매우 비슷해보이지만, 내부적으로 큰 차이점이 있다. 자바 문서를 보면 다음과 같다.

2018년 04월 20일

자바 제네릭 - Java Generic

모던 자바는 자바5 이후를 말한다. 그 대표적인 특징은 세 가지로 애노테이션, 람다 그리고 제네릭이다. 이번 글로 알게 모르게 사용하고 있는 제네릭에 대해서 정리해보자. 사전 정의 generic formal shared by, typical of, or relating to a whole group of similar things, rather than to any particular thing. ex) The new range of engines all had a generic problem with their fan blades. generic drugs or other products do not have a trademark and are sold without the name of the company that produced them.

2018년 03월 31일

자바 메인 메소드

자바 메인 메소드 public static void main(String[] args) 는 자바를 처음 배울 때, 가장 먼저 접하는 메소드다. 자바 메인 메소드는 자바 프로그램의 진입점으로 항상 public static void main(String[] args) 의 형태로 작성된다. 개발자는 매개변수 명만 변경할 수 있고 나머지는 항상 정해진 되로 작성해야 한다.

2018년 01월 16일

Thread safe의 조건

쓰레드 개념이야 알고 있지만, 웹 개발을 하다보니 실제로 개발하는 코드가 쓰레드 세이프한지 별 고민없이 개발을 해왔던 것 같다. 쓰레드 세이프 조건에 대해서 알아보자. 하나의 쓰레드만 존재한다.

2018년 01월 16일

리눅스 문자열 검색 grep 명령어 사용법

리눅스 문자열 검색 grep 명령어를 정리한다. 기본 명령어 링크 기본 문법 grep [-옵션] 패턴 파일명 옵션 -c 패턴이 일치하는 행의 수 -i 대소문자 구분 안함 -v 패턴과 일치하지 않는 행을 출력 -n 행의 번호를 함께 출력 -r 서브 디렉토리까지 검색 -l 패턴이 포함된 파일 이름을 출력 -E 패턴을 정규 표현식으로 확장

2017년 10월 09일

리눅스 기본 명령어 사용법

기본적인 리눅스 명령어를 모아놓고 활용하자. 디스크 용량 확인 df 명령어 폴더 용량 확인 du 명령어 종료 shutdown 명령어 내 위치 경로 pwd 명령어 폴더 이동 cd 명령어 파일 내역 확인 ls 명령어 파일/폴더 복사 cp 명령어 파일/폴더 변경 mv 명령어 파일 삭제 rm 명령어 폴더 생성 mkdir 명령어 폴더 삭제 rmdir 명령어 문자열 검색 grep 명령어

2017년 10월 07일

Let's Encrypt를 갱신할 때 Web Server도 재시작하자

오늘 잠깐 내 블로그에 접속을 했다가 크롬 URL 창에서 ‘안전하지 않음’ 메시지를 보고 깜짝 놀랬다. 원인을 생각해봤을때, Let’s Encrypt 인증서 갱신이 제대로 이루어 지지 않아서 발생한 문제라고 파악했다. 이전에 내가 작성했던 Let’s Encrypt로 HTTPS 적용하기 를 보면 인증서 갱신을 위해 cron 설정을 해뒀었다. 처음에는 이 부분이 잘못 설정 된줄 알고 직접 갱신 명령을 실행해봤지만 실패..그래서 Log 파일을 확인해 봤다.

2017년 08월 31일

HTML 파서 Jsoup의 NodeTraversor

보통 크롤러를 만들때, 해당 HTML 구조를 파악하고 NavigatingAPI를 사용해서 필요한 DOM을 선택하고 값을 추출하거나 작업을 했다. 그런데 body 태그 안의 모든 DOM 중에서 조건에 맞는 DOM이면 특정 작업을 해야 할때는 어떻게 해야 할까? 특별한 규칙성이 없다면 모든 DOM을 순회하면서 일일이 조건에 맞는지 확인해야 한다. 그래서 HTML DOM은 트리 구조라고 할 수 있으니, 트리 순회 알고리즘을 적용하면 되지 않을까 생각했다. 그런데 내가 생각할 수준이면 이미 만들어져 있지 않을까 했는데, 역시나 API를 뒤져보니 나온다. 그것이 org.jsoup.select 패키지의 NodeTraversor이다.

2017년 08월 29일

« 1 2 3 4 5 6 »