전체 글 (69) 썸네일형 리스트형 curl을 사용한 간단한 HTTP 통신 오늘 curl에 대해서 포스팅을 하려고 했는데, 확인해보니까 작년에 내가 이미 올린 글이 있었다. 그래도 그 포스팅은 간략하게 정리한 글이었어서 새로 정리하는 것도 의미가 있을 것 같다. . 1. curl 이란? curl은 커맨드 라인에서 URL을 사용해서 데이터를 송수신할 수 있게 해주는 오픈소스 소프트웨어 및 라이브러리다. MIT 라이센스를 따르고 있다. 우리가 curl을 쓸 때 흔히 사용하는 HTTP뿐만 아니라 FTP, IMAP, POP3, SMTP 등 수많은 프로토콜을 지원한다. 내가 curl을 처음으로 사용하게 된 계기는 리눅스 쉘에서 내가 개발한 자바 웹 애플리케이션의 restAPI를 실행하기 위해서였다. 원래는 포스트맨을 사용해서 내가 개발한 restAPI를 테스트했는데, 그때는 리눅스 서버.. [230827] Exception에 관해서 (2) - StackTrace 예외는 JVM에서 발생하거나, 프로그램에서 throw문에 의해 발생할 수 있다. 예외 상황이 발생하였을 때 예외 클래스의 인스턴스가 생성되며, 스택트레이스 데이터나 오류에 대한 메시지 문자열도 이 시점에 생성된다. 이번 글에서는 스택트레이스가 무엇인지, 그리고 스택트레이스 요소를 저장하는 클래스인 StackTraceElement에 대해 정확히 알아보려고 한다. StackTrace 스택트레이스란 예외 발생 시점 전까지 호출된 메서드의 목록을 말한다. 예외를 강제 발생시키는 테스트 코드를 작성해서 스택트레이스를 찍어보았다. public static void main(String[] args) { // 존재하지 않는 파일 경로를 설정해서 예외를 강제로 발생시킴 File file = new File("C:\\n.. [230820] Exception에 관해서 (1) - Error, Exception, RuntimeException 이펙티브 자바 스터디를 하다가 Exception에 대해 자세히 알 기회가 생겼는데, 평소에는 몰랐던 부분이기도 하고 알고 나니까 신기해서 간단하게 정리해보려고 한다. 1. Exception 이란? 자바 개발을 하면서 모르면 안 되는 개념이지만, 막상 정의를 하려니 어떻게 말해야 명료하게 느껴질지 모르겠다. "프로그램에서 발생한 오류를 java에서는 Exception이라고 한다"는 말이 가장 먼저 떠오르는데, 이렇게 답하자니 뭔가 부족한 설명으로 느껴진다. 오라클에 있는 자바 자습서에 따르면 예외의 정의는 아래와 같다. Definition: An exception is an event, which occurs during the execution of a program, that disrupts the n.. [230813] java TreeMap TreeMap은 key를 기준으로 요소를 정렬해주는 레드블랙트리 기반의 Map이다. 일반적으로는 자연적인 순서를 기반으로 정렬을 해주는데, comparator를 구현하였을 경우에는 그 순서대로 정렬을 해 준다. NavigableMap을 구현하고 있는데, NaigableMap의 코드를 보면 또 SortedMap을 구현하고 있다. 즉 TreeMap을 정렬 가능한 맵으로 만들어주는 기본 포맷은 SortedMap이라고 볼 수 있다. 처음에 TreeMap을 사용하려고 했을 때 HashMap을 사용할 때처럼 Map 인터페이스에 TreeMap을 선언했는데, 이렇게 하니까 정렬에 관련된 메서드가 동작이 안 되었다. TreeMap을 선언할 때는 인터페이스에 선언하는 게 아니라 NavigableMap에 선언해야 한다. S.. [230805] [google drive api] java api 사용하기 (3) - 파일 검색 코드 작성 . 2편에서 API 인증 토큰 발급하는 법을 설명했고, 이번 3편에서는 구글 드라이브 API를 사용하는 방법을 작성하려 한다. 1. 검색 2편에서 사용한 샘플 코드 중 main 만 떼어내서 가져왔다. 주석 중 // 1. Drive 객체 생성 을 보면, 구글 드라이브 API를 사용하기 위해서는 Drive 객체를 만들어야 한다. 이때 api의 접근 권한을 설정하거나, 사용자 인증 방식을 정의하는데, 자세한 건 이전 글에 정리되어 있다. public static void main(String... args) throws IOException, GeneralSecurityException { // 1. Drive 객체 생성 final NetHttpTransport HTTP_TRANSPORT = GoogleNet.. [230530] [google drive api] java api 사용하기 (2) - 인증토큰 발급 이제서야 2편을 쓴다... ㅋㅋㅋ 나는 파일검색 말고는 안 써봐서 파일 검색 관련된 내용만 포스팅을 할 예정이다. 그런데 어떻게 내용을 써야할지 모르겠다. 뭔가 매뉴얼을 보면 다 있는 내용이라서... 강의같은 글보다는 개발기 같은 글이 될 것 같다. 적다보니 내용이 길어져서 2편에서 인증토큰 발급 과정을 적고 3편에서 검색하는 법을 적으려고 한다. 인증토큰 발급 소스는 굳이 DRIVE api가 아니더라도 여러 구글 api에 응용할 수 있다. 알다시피 구글 api 사용 가이드 링크는 아래와 같다. https://developers.google.com/drive/api/guides/about-sdk Google Drive API 소개 | Google for Developers 이 페이지는 Cloud Tran.. [230410] [google drive api] java api 사용하기 (1) - api 사용 설정 글을 오랜만에 쓴다. 구글 드라이브 api를 사용할 일이 있었는데 적용법이 쉽지 않아서 좀 고생했다. 다 끝내고 나니까 꼭 정리해야 겠다는 생각이 들더라. 몇 년 전에 사용할 때도 느꼈지만 구글 api는 매뉴얼이 좀 부실하다. 개발환경 - java 1.8 - google drive api - maven - eclipse 모든 google api 사용은 google cloud console에 들어가는 것에서 시작한다. oauth만 사용할 경우는 어떤지 잘 모르겠다. google cloud console에 들어간 뒤 프로젝트를 생성해야 한다. 프로젝트를 생성한 뒤에 프로젝트에서 사용할 구글 api(구글 드라이브, 캘린더, 지도 등...)를 설정할 수 있다. https://console.cloud.google.. [220825] vi 블록 선택 / 복사&붙여넣기 vi에서 v를 누른 뒤 방향을 이동해서(hjkl키 이용) 원하는 만큼 블록 지정을 할 수 있다. 블록지정한 상태에서 y를 누르면 지정한 영역이 복사되고, p를 눌러서 붙여넣을 수 있다. 블록지정한 영역을 지우고 싶다면 x를 눌러서 지울 수 있다. 이전 1 2 3 4 ··· 9 다음