최신 글
-
[Java] Long과 long의 차이
자바에서 데이터 타입을 배울 때, Long이라는 타입도 배우게 된다. 그런데 자바를 실제로 사용하다 보면, long이라는 타입도 있어서 어느 것을 사용해야 할 지 고민이 된다. 이런 비슷한 페어들이 있으니, 한 번에 정리해서 적절한 타입을 사용해 보자. 기본 데이터 타입 (primitive type)long은 기본 데이터 타입이다. 이는 다음과 같은 중요한 특성을 가진다.스택 메모리에 직접 저장되므로 메모리 사용이 효율적이다연산 속도가 빠르다null값을 가질 수 없다 -> null point exception을 발생시킬 수 있다ex) int, long, float, double, char, byte, short, boolean 객체 타입 (wrapper type)Long은 객체 타입이다. 이는 다음과 같..
2024.09.15
-
[Postman] 포스트맨 심화 사용법
Postman에서 기본적인 api 요청 생성 및 응답 확인을 하게 되면 직관적인 UI덕분에 금방 활용이 가능하다. 하지만 프로젝트 규모가 커져서 api가 많아지거나, 배포/개발/로컬 등의 환경이 분리되어 다양한 세팅에서 동일한 api를 사용하게 되는 경우, 포스트맨의 기타 기능들을 사용해야 생산성이 크게 올라간다. 이번에는 그런 사용법들을 소개하려고 한다. 환경변수 설정프론트와 백엔드, vscode나 intellij 등에서 개발을 할 때, 환경변수를 사용하면 동일한 값을 불러올 수 있어서 생산성이 높아지고 코드의 유지보수가 수월해진 것을 느낄 수 있다. 포스트맨에서도 환경변수를 사용하면 비슷한 편리함을 느낄 수 있다. 우선 환경변수를 만들기 위해 왼쪽의 environments 탭을 눌러보면 다음과 같은 ..
2024.09.09
-
[AWS, Java, Spring] Presigned Url로 S3에 이미지 업로드하기
Presigned Url을 사용해야 하는 이유백엔드 서버를 구축할 때, 기초적인 이미지 업로드 구현을 서버가 S3 버킷에 직접 업로드하는 방식으로 하는 경우가 많다. 소규모 프로젝트에서 이 방식이 가장 간편하기 때문이다. 이 구조를 그림으로 표현하면 다음과 같다. 즉, 서버에서 이미지 파일을 직접 전송받고 s3에 전송해 줘야 하기에, 이 과정에서 서버 자원이 많이 소모된다. 하지만 aws s3에서 제공하는 presigned url을 사용한다면 서버에서 파일을 직접 처리하지 않게 되기에 서버의 부담이 많이 줄어드는 큰 장점이 있다. 또한, aws에서 presigned url을 통해 파일을 업로드하는 경우 처리 속도를 아주 빠르게 제공해 주고 있어서 기존 프로젝트보다 성능이 향상된다. Presigned U..
2024.08.22
-
[AWS, Java] Cloudwatch 경보를 AWS sdk for Java로 만들기
Cloudwatch Alarm (경보)란?Cloudwatch에서 다양한 이벤트에 대한 지표, 로그, 경보 등을 만들 수 있다. 쉽게 말하자면, 내가 설정한 AWS에서 발생한 일에 대해 모니터링을 할 여러 수단들이 마련되어 있다는 뜻이다. 이 중 경보(alarm)은 내가 설정한 어떤 일이 발생했을 때, 이메일 송신과 같은 방법으로 알람을 받을 수 있게 설정하는 도구다. 위 사진처럼 AWS 콘솔 - cloudwatch 에서 경보 탭을 클릭하여, 경보를 쉽게 만들 수 있다. 그러나 콘솔에서 경보를 만드는 것 뿐만이 아니라, AWS sdk for Java를 이용하여 스프링 프로젝트에서도 경보를 다룰 수도 있다. 나는 회사의 프로젝트에서 자동으로 경보를 생성하는 알고리즘이 필요했기에 이 방법을 사용하게 되었는데,..
2024.07.09
-
[Java] ResponseEntity 를 return할 때, new를 언제 붙이는가?
ResponseEntity란?ResponseEntity는 HttpEntity를 상속받고 있어, HttpEntity에다 HttpStatusCode를 추가한 클래스이다. HttpEntity는 HTTP 요청 또는 응답 entity인데, header와 body로 구성되어 있다. ResponseEntity class 문서에서 생성자는 다음과 같다.public ResponseEntity(@Nullable T body, @Nullable MultiValueMap headers, HttpStatusCode statusCode) { super(body, headers); Assert.notNull(statusCode, "HttpStatusCode must not be null"); this.status ..
2024.05.09
-
[Java] 선형 검색 Linear Search
선형 검색선형 검색 (=순차 검색)은 배열에서 검색할 값을 처음부터 순서대로 하나하나씩 비교하여 찾는 방식이다. 예를 들어 배열 {1, 2, 3, 4, 5}에서 값 3을 선형 검색으로 찾는다면, 첫 값인 1과 3을 비교, 다음 값인 2와 3을 비교, 그리고 다음 3과 3을 비교해서 찾게 된다. Java로 선형 검색 구현일반적으로 선형 검색을 할 경우, 다음 두 가지 결과가 발생한다.배열을 끝까지 탐색했음에도 불구하고 검색할 값을 찾지 못함 -> 검색 실패배열 탐색 중 검색할 값을 찾음 -> 검색 성공이를 메소드로 구현하면 다음과 같다.import java.util.Scanner;class SeqSearch { // 크기가 n인 자바 배열 a에서 key와 값이 같은 요소를 선형 검색하는 메소드 ..
2024.05.02
인기 글
-
[Postman] 포스트맨 심화 사용법
Postman에서 기본적인 api 요청 생성 및 응답 확인을 하게 되면 직관적인 UI덕분에 금방 활용이 가능하다. 하지만 프로젝트 규모가 커져서 api가 많아지거나, 배포/개발/로컬 등의 환경이 분리되어 다양한 세팅에서 동일한 api를 사용하게 되는 경우, 포스트맨의 기타 기능들을 사용해야 생산성이 크게 올라간다. 이번에는 그런 사용법들을 소개하려고 한다. 환경변수 설정프론트와 백엔드, vscode나 intellij 등에서 개발을 할 때, 환경변수를 사용하면 동일한 값을 불러올 수 있어서 생산성이 높아지고 코드의 유지보수가 수월해진 것을 느낄 수 있다. 포스트맨에서도 환경변수를 사용하면 비슷한 편리함을 느낄 수 있다. 우선 환경변수를 만들기 위해 왼쪽의 environments 탭을 눌러보면 다음과 같은 ..
2024.09.09
-
[AWS, Java, Spring] Presigned Url로 S3에 이미지 업로드하기
Presigned Url을 사용해야 하는 이유백엔드 서버를 구축할 때, 기초적인 이미지 업로드 구현을 서버가 S3 버킷에 직접 업로드하는 방식으로 하는 경우가 많다. 소규모 프로젝트에서 이 방식이 가장 간편하기 때문이다. 이 구조를 그림으로 표현하면 다음과 같다. 즉, 서버에서 이미지 파일을 직접 전송받고 s3에 전송해 줘야 하기에, 이 과정에서 서버 자원이 많이 소모된다. 하지만 aws s3에서 제공하는 presigned url을 사용한다면 서버에서 파일을 직접 처리하지 않게 되기에 서버의 부담이 많이 줄어드는 큰 장점이 있다. 또한, aws에서 presigned url을 통해 파일을 업로드하는 경우 처리 속도를 아주 빠르게 제공해 주고 있어서 기존 프로젝트보다 성능이 향상된다. Presigned U..
2024.08.22
-
문화재청 행사일정 API로 달력 만들기 시리즈 (2)
지난 글에서 문화행사 일정을 MySQL에 저장하는데까지 진행하였다. 이제 이 데이터를 이용해서 ics파일을 만들고자 한다. iCal4j 를 Spring에 세팅하기 자바에서 쉽고 간단하게 ics파일을 다루는 iCal4j 라는 라이브러리가 있기에, 이를 사용하면 ics파일 쓰기/읽기/저장하기를 할 수 있다. iCal4j 공식 레퍼런스 사이트Getting Started - iCal4j Getting Started - iCal4jGetting Started These instructions are designed to help you get a basic setup, to be able to start coding with iCal4j. Download iCal4j libraries are..
2024.02.25
-
문화재청 행사일정 API로 달력 만들기 시리즈 (3)
지난번에 문화행사 데이터를 저장하고, ics파일로 만들기까지 진행되었다. 이제 이 데이터로 javascript에 풀캘린더(full calendar)를 활용해 달력을 출력할 시간이다. 풀캘린더 공식 사이트 Introduction - Docs | FullCalendar Introduction - Docs | FullCalendar How to get FullCalendar’s code, initialize a calendar, and other basic principles. fullcalendar.io 풀캘린더 Full Calendar 사용하기 1) 세팅 풀캘린더를 사용하면 내가 직접달력을 구현할 필요가 없이, 미리 구현된 달력에 내 데이터를 입력하기만 하면 된다. 풀캘린더 공식 홈페이지에서 세팅할 수 있..
2024.02.25
-
문화재청 행사일정 API로 달력 만들기 시리즈 (1)
프로젝트 목표 1) 문화재청에서 제공하는 API중에서 문화행사 일정 데이터가 있다. 나는 이 데이터를 활용하여 스프링 프로젝트에서 문화행사 일정 달력을 출력하려고 목표를 설정하였다. 문화재청 API 링크 문화재청 > Open API 개방목록 > 문화재정보 > 활용정보 (cha.go.kr) 문화재청 > Open API 개방목록 > 문화재정보 > 활용정보 Open API 개방목록 문화유산소식 --> 안내사항 오픈API 소개 오픈API란 누구나 사용할 수 있도록 공개된 API를 말합니다. 데이터를 표준화하고 프로그래밍해 외부 소프트웨어 개발자나 사용자들과 공 www.cha.go.kr 2) 또한, 데이터를 iCalendar(ics)형태의 파일로 만들어서 구글 캘린더나 네이버 캘린더와 같은 서비스에서 행사일정 목..
2024.02.23