최신 글
-
[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
-
[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
-
[Spring] 프로젝트에 Dependency추가하기 (+Json파싱)
Java에서 JSON 파싱 자바에서 Json데이터를 파싱할 때, 주로 org.json.simple 라이브러리에서 메소드를 호출해서 파싱하는 것이 간편하다. 요약하자면 다음과 같은 코드로 파싱한다. Json데이터 -> 파싱 -> JsonObject로 변환 -> key-value에서 key입력으로 value검색 순서로 진행된다. 여기서 JsonObject는 key-value로 구성된 객체이다. // 먼저 Json데이터를 읽는 메소드를 호출한다 JSONParser jsonParser = new JSONParser(); // Json데이터를 JsonObject형태로 변환한다. JSONObject rootObj = (JSONObject) jsonParser.parse(제이손데이터); // key값으로 value를..
2024.03.16
-
IPv4 FLSM 서브네팅 (Subnetting)
서브네팅서브네팅은 할당된 네트워크 주소를 다시 여러 네트워크로 나누어 사용하는 것이다. IPv4의 IP주소를 서브네팅하는 방식으로 FLSM, VLSM등이 있는데, FLSM방식의 서브네팅을 하는 방식을 알아보자. 예시) 192.168.1.0/24 을 3개의 subnet으로 나누기주소의 마지막 /24부분이 서브넷 마스크이므로 이에 주목해야 한다.본래 IPv4주소는 8bit씩 4개, 즉 32bit로 이루어진다. 각 8bit는 점(.)으로 분리해서 표기한다.24는 네트워크ID를 표기하도록 24bit를 사용하라는 의미이다. 그러므로 32 - 24 = 8, 남은 8bit로 호스트ID를 구성해 서브네팅을 한다.8bit를 우선 4등분하여 6bit씩 분배한다. 이는 2의 6승이므로, 10진법으로 64이다. 이를 주소의..
2024.04.26