본문 바로가기

항해 99

(151)
Spring - Image Resize 학습 목적토이 프로젝트로 Pixiv 사이트의 기능을 만들어 보고 싶어서 이미지 업로드와 리사이즈를 통한 썸네일화에 대해 배워보려고 한다. 이미지 리사이징하는 이유? 페이지 로딩 속도 개선: 큰 이미지 파일은 로딩 시간이 길어질 수 있습니다. 이미지를 리사이즈하면 파일 크기가 줄어들어 웹 페이지의 로딩 속도가 빨라집니다. 빠른 로딩 시간은 사용자 경험을 개선하고, 검색 엔진 최적화(SEO)에도 긍정적인 영향을 미칩니다.대역폭 절약: 리사이즈된 이미지는 파일 크기가 작아져 서버와 사용자 양측에서 사용되는 데이터 대역폭을 절약할 수 있습니다. 이는 특히 모바일 데이터 요금이 중요한 상황이나 대역폭이 제한된 환경에서 유용합니다.적절한 해상도유지: 디바이스별로 최적의 해상도를 유지하기 위해 이미지를 리사이즈할 수..
자바 - 탐색 알고리즘, 그래프 알고리즘 탐색 알고리즘(Search Algorithms)자바에서 사용되는 대표적인 탐색 알고리즘에는 선형 탐색(Linear Search)과 이진 탐색(Binary Search)이 있습니다.두 알고리즘은 데이터 구조나 문제의 특성에 따라 각각의 장단점을 가지며, 적절히 사용해야 최적의 성능을 발휘할 수 있습니다. 선형 탐색(Linear Search)특징:배열이나 리스트에 있는 모든 요소를 처음부터 끝까지 순차적으로 탐색합니다.탐색 대상이 없는 경우, 리스트의 끝까지 탐색을 계속합니다.정렬되지 않은 데이터에도 사용할 수 있습니다.시간 복잡도:최악의 경우: O(n) (탐색해야 하는 리스트의 모든 요소를 검사해야 하기 때문)장점:구현이 간단하고, 데이터가 정렬되어 있을 필요가 없습니다.데이터의 크기나 구조에 구애받지 않..
WebHook WebHook(웹훅)WebHook(웹훅)이란 데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능으로 웹 서비스의 이벤트 데이터를 전달하는 HTTP 기반 콜백 함수이다. 특정 이벤트가 발생하면 웹훅이 클라이언트에게 이벤트 데이터를 보냄, 웹훅이라는 단어는 HTTP 기반의 웹 특징과 훅(Hook) 기능을 합친 용어이다. WebHook의 주요 특징이벤트 기반:WebHook은 이벤트가 발생할 때만 작동한다.예를 들어, 사용자가 새로운 글을 작성하거나 주문이 완료되는 등의 이벤트가 발생하면 WebHook이 설정된  URL로 요청을 보낸다.HTTP 요청:WebHook은 HTTP POST 요청을 통해 데이터를 전달한다. 이 요청은 JSON, XML 등의 형식으로 데이터를 포함할 수 있다.실시간 통신:WebH..
Java - Nested, Inner Class 참조 - 김영한 자바 중급 1편 강의 중첩 클래스, 내부 클래스(Nested Class, Inner Class)아래 예시 코드처럼 클래스 안에 클래스를 중첩해서 정의할 수 있는데, 이를 중첩 클래스(Nested Class)라 한다.class Outer { ... // 중첩 클래스 class Nested { ... }} 중첩 클래스는 클래스를 정의하는 위치에 따라 다음과 같이 분류한다. 중첩 클래스는 총 4가지가 있고, 크게 2가지로 분류할 수 있다.정적 중첩 클래스내부 클래스 종류내부 클래스지역 클래스익명 클래스중첩 클래스를 정의하는 위치는 변수의 선언 위치와 같다. 변수의 선언 위치정적 변수(클래스 변수)인스턴스 변수지역 변수중첩 클래스의 선언 위치정적 중첩 클래스 → 정적 변수..
Java - 정렬 알고리즘 Java 정렬 알고리즘(Sorting Algorithms)자바에서 사용되는 정렬 알고리즘에는 여러 가지가 있으며, 각 알고리즘은 서로 다른 방식과 성능 특성을 가지고 있다.대표적인 정렬 알고리즘은 아래와 같다. 버블 정렬(Bubble Sort)선택 정렬(Selection Sort)삽입 정렬(Insertion Sort)퀵 정렬(Quick Sort)병합 정렬(Merge Sort)힙 정렬(Heap Sort) 퀵 정렬(Quick Sort)기준 원소(pivot)을 선택하여 기준 원소보다 작은 원소들은 왼쪽에, 큰 원소들은 오른쪽에 배치하고 재귀적으로 이 과정을 반복한다. 특징시간 복잡도: 평균적으로 O(n log n), 최악의 경우 O(n^2) - 피벗 선택에 따라 다름공간 복잡도: O(log n) - 재귀 호출..
Java - 날짜와 시간 김영한 중급 자바 1편 강의 참조 날짜와 시간날짜와 시간 라이브러리의 필요성1. 날짜와 시간 차이 계산특정 날짜에서 다른 날짜까지의 정확한 일수 계산은 윤년, 각 달의 일수 등을 모두 고려해야 하며, 간단한 연산으로는 정확한 결과를 얻기 힘듬2. 윤년 계산윤년 계산은 간단해 보이지만 실제로 매우 복잡하다, 보통 4년마다 한 번씩 발생하지만, 100년 단위일 때는 윤년이 아니며, 400년 단위일 때는 다시 윤년이다.3. 일광절약 시간(Daylight Saving Time, DST) 변환보통 3월에서 10월은 태양이 일찍 뜨고, 나머지는 태양이 상대적으로 늦게 뜨기 때문에 시간도 여기에 맞춰 앞당기거나 늦추는 제도를 일광 절약 시간제 또는 썸머타임이라 한다.일광 절약 시간은 국가나 지역에 따라 적용 여부와 ..
Java - ENUM 참조 - 김영한의 실전 자바 중급 1편 ENUM자바는 타입 안전 열거형 패턴(Type-Safe Enum Pattern)을 매우 편리하게 사용할 수 있는 열거형(Enum Type)을 제공한다. enum은 열거형 상수를 정의하는  특별한 클래스로 열거형을 사용하면 상수 값을 하나의 그룹으로 묶어 처리할 수 있어 코드의 가독성과 유지보수성을 높일 수 있다.타입 안전 열거형 패턴(Type-Safe Enum Pattern)의 장단점장점타입 안정성 향상: 정해진 객체만 사용할 수 있기 때문에, 잘못된 값을 입력하는 문제를 근본적으로 방지할 수 있다.데이터 일관성: 정해진 객체만 사용하므로 데이터의 일관성이 보장된다.제한된 인스턴스 생성: 클래스는 사전에 정의도니 몇 개의 인스턴스만 생성하고, 외부에서는 이 인스턴스..
Java - Wrapper, Class, System, Math, Random 래퍼 클래스(Wrapper Class)기본 데이터 타입(primitive data type)을 객체(object)로 다루기 위해 제공되는 클래스를 말함자바의 모든 기본 데이터 타입에는 해당하는 Wrapper 클래스가 있으며, 이는 java.lang 패키지에 포함되어 있다. Wrapper Classboolean → Booleanchar → Characterbyte → Byteshort → Shortint → Integerlong → Longfloat → Floatdouble → Double기본형(Primitive Type)의 한계객체가 아님: 기본형 데이터는 객체가 아니기 때문에, 객체 지향 프로그래밍의 장점을 살릴 수 없다(객체는 유용한 메서드를 제공할 수 있지만 기본형은 안 됨).객체 참조가 필요한 컬..