최신 글
-
[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
-
[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
-
[AWS, Java, Spring] Presigned Url로 S3에 이미지 업로드하기
Presigned Url을 사용해야 하는 이유백엔드 서버를 구축할 때, 기초적인 이미지 업로드 구현을 서버가 S3 버킷에 직접 업로드하는 방식으로 하는 경우가 많다. 소규모 프로젝트에서 이 방식이 가장 간편하기 때문이다. 이 구조를 그림으로 표현하면 다음과 같다. 즉, 서버에서 이미지 파일을 직접 전송받고 s3에 전송해 줘야 하기에, 이 과정에서 서버 자원이 많이 소모된다. 하지만 aws s3에서 제공하는 presigned url을 사용한다면 서버에서 파일을 직접 처리하지 않게 되기에 서버의 부담이 많이 줄어드는 큰 장점이 있다. 또한, aws에서 presigned url을 통해 파일을 업로드하는 경우 처리 속도를 아주 빠르게 제공해 주고 있어서 기존 프로젝트보다 성능이 향상된다. Presigned U..
2024.08.22
-
포스트맨 Postman 기본 사용법
포스트맨이란?프로젝트를 진행하다 보면, 백앤드에서 생성한 REST API가 제대로 작동을 하는지 알려줄 프론트 부분이 존재하지 않거나 연결되지 않은 상태일 수 있다. 이런 경우, 프론트의 도움 없이 포스트맨이라는 도구의 도움을 받아 검증을 할 수 있다 사용법1. 포스트맨 프로그램을 설치한다포스트맨을 PC에 설치하지 않고 웹버전으로도 사용 가능하지만, localhost에서만 구동하는 REST API를 검증하기 위해서 데스크탑 버전이 필수이다.Postman API Platform | Sign Up for Free Postman API Platform | Sign Up for FreePostman is an API platform for building and using APIs. Postman simplif..
2024.02.22
-
[MyBatis] mapper.xml의 parameterType에 인자 2개 넣기
parameterType MyBatis에서 SQL문에 들어가는 인자의 데이터 형태를 반드시 명시해 줘야 하며, 이는 parameterType로 설정한다. 숫자면 int, 문자면 String 등 을 명시해야 Spring이 제대로 작동한다. 만약 여러 개의 인자를 넣고 싶다면, 해당 인자들의 집합을 Java 객체 클래스로 따로 선언하여 사용하는 것이 효율적이다. 예를 들어 회원정보를 저장할 때 Member객체를 생성하여 insert문에 보내주면 된다. INSERT INTO MEMBER ( mNO, ID, PASSWORD, ROLE, NAME, STATUS, ENROLL_DATE, MODIFY_DATE ) VALUES( 0, #{id}, #{password}, DEFAULT, #{name}, DEFAULT, ..
2024.04.09