Backend (18) 썸네일형 리스트형 [JAVA] ArrayList #JAVA #컬렉션 #ListArrayList와 배열Java를 사용하면, 데이터를 효율적으로 관리하고 조작할 수 있는 다양한 자료 구조가 필요하다.그 중에서 ArrayList는 배열의 한계를 극복하고,동적으로 배열 크기를 조정할 수 있는리스트다.배열의 개념과 특징배열은 고정된 크기의 데이터 저장소로, 인덱스를 통해 데이터 접근을 빠르게 접근 할 수 있는 자료구조이다.인덱스를 통한 빠른 접근 속도 : 특정 요소 접근 / O(1)순차적 검색 : 배열의 모든 요소를 순차적으로 탐색(검색) / O(n)배열은 특정 위치에 데이터를 삽입하거나 삭제할 때, 모든 데이터를 이동해야하는 점과 크기가 고정적이라는 단점을 가지고 있다.ex) 배열의 첫번째 Index에 데이터를 삽입할 경우 기존 첫번째 데이터부터 모두 오른쪽.. [JAVA] 제네릭 #JAVA배경같은 로직을 가지고, 두 타입의 자료를 다루는 경우를 생각해보자.새우만 담을 수 있는 통과, 조개만 담을 수 있는 통이 있을 때안에 들어있는 조개와 새우를 넣고 뺴는 행위(공통 로직)에는 변함이 없지만 통을 따로 나누어야만 한다.(코드의 분리)하지만 따로 통에 들어갈 수 있는 해산물을 정하지 않고, 해산물 통으로 분류하고, 들어오는 해산물에 따라서 담는다면 편할 것이다.(코드의 재사용)=> 제네릭의 사용으로 코드 재사용과 타입 안정성을 모두 잡을 수 있다.제네릭의 핵심은 사용할 타입을 미리 정하지 않는다는 것이다.제네릭제네릭(Generic)제네릭 타입(Generic Type)클래스나 인터페이스를 정의할 때 타입 매개변수를 사용하는 것타입 매개변수(Type Parameter)제네릭 타입이다 메.. [JAVA] 예외 처리 #JAVA예외 처리가 생겨나게 된 이유현대의 서비스들은 외부 서버와의 연결, 네트워크 통신 등 많은 부분들을 서로 연계하여 만들어진다.그로인해 발생되는 많은 예외들을 어떻게 처리해야 할 것인가는 매우 중요하다.예외 처리 기법이 생겨나기 전의 처리반환 값으로 예외 처리오류가 발생했을 때 직접 값을 반환해 처리하는 방식 ex) "success", "false"=> 해당 방식은 수많은 수많은 if문들의 중첩으로 정상 흐름과 예외흐름이 겹쳐 있어, 중요한 정상 흐름을 알아보기가 쉽지 않다.예외 계층자바는 예외를 처리하기 위한 매커니즘을 제공한다.keyword : try, catch, finally, throw, throws체크 예외와 언체크 예외의 분기예외는 폭탄과 같고 잡아서 처리하거나 계속 던져버려야 한다... [JAVA] 클래스 (중첩, 내부) #JAVA #클래스중첩 클래스의 분류정적 중첩 클래스 : 바깥 클래스와 밀접한 관련이 있지만, 인스턴스 간에 데이터 공유가 필요 없을 떄 사용내부 클래스 : 바깥 클래스의 인스턴스와 연결, 바깥 클래스에 의존하거나 강하게 연관된 작업을 수행할 때 사용지역 클래스내부 클래스의 특징지역 변수에 접근 가능, 접근하는 지역 변수는 final익명 클래스이름이 없는 지역 클래스일회성 구현하여 사용할 때 유용사용 이유논리적 그룹화 : 특정 클래스가 다른 하나의 클래스 안에서만 사용되는 경우, 해당 클래스 안에 포함하는 것이 논리적으로 더 그룹화 되는 효과캡슐화 : 중첩 클래스는 바깥 클래스의 private 멤버 변수에 접근 가능하다.불필요한 public 메서드 제거 가능지역 클래스지역클래스 역시 내부 클래스이기 때문.. [JAVA] 열거형 (Enum Type) #JAVA #ENUM 열거형 타입이 만들어지게 된 배경기존 메서드들의 매개 변수로 String을 받는다고 가정을 했을 때타입 안정성을 보장 할 수 없음 (어떤 문자열이 들어와도 로직 수행)-> 컴파일 단계에서 오류를 찾아낼 수 없음데이터 일관성 부족 (대소문자 구분, 개발자의 오타 등등)이 문제를 해결하기 위해 문자열 상수를 사용해 해결해보고자 함public class User { public static final String BASIC = "BASIC";}하지만 여전히 String 값에 대한 입력에 무방비하며 일관성을 보장해 주지 못한다.타입 안전 열거형 패턴 (직접 구현)앞선 문제들을 해결하기 위해 열거형 패턴의 등장public class User{ public static final U.. [JAVA] 불변 객체 #JAVA기본형과 참조형자바의 데이터 타입은 기본형(Primitive Type), 참조형 (Reference Type)으로 나눌 수 있다.기본형 : 하나의 값을 여러 변수에서 절대로 공유하지 않는다.참조형 : 하나의 객체를 참조값을 통해 여려 변수에서 공유참조형 변수는 참조값으로 변수에 접근 하기 때문에, 객체의 공유를 막을 수 없다.-> 불변 객체를 도입불변 객체객체의 상태가 변하지 않는 객체 (Imutable Object)public class ImmutableAddress { private final String value; public ImmutableAddress(String value) { this.value = value; } public String get.. [JAVA] 날짜와 시간 #JAVA #DateTime배경특정 시기에서 다른 날짜까지의 계산은 매우 복잡함.(윤년의 계산, 각 달마다 다른 일수)일광 절약 시간(Daylight Saving Time, DST)이 도입된 나라들의 시간 계산.3월~10월에는 태양이 일찍 뜸 -> 썸머타임 적용하는 나라들 존재 (미국주식장 썸머타임)세계는 타임존으로 나누어져 있으며 UTC(협정 세계시)로부터의 시간 차이로 정의-> 타임존 간의 날짜와 시간 변환여러 시간의 기준 존재GMT(그리니치 평균시)처음 세계 시간을 만들 때 영국 런던에 있는 그리니치 천문대를 기준UTC(협정 세계시) - 주로 선호됨원자 시계를 사용해 국제적으로 합의된 시간 체계, 지구의 자전 속도도 반영된 시간 조정날짜와 시간 라이브러리LocalDate : 날짜만 표현 / 년, 월.. [querydsl] kotlin gradle에서 초기세팅하기 주석 처리된 querydsl 쪽을 따라 적어주면 초기 세팅할 수 있다. plugins { java id("org.springframework.boot") version "3.2.0" id("io.spring.dependency-management") version "1.1.4" // querydsl 추가 id("com.ewerk.gradle.plugins.querydsl") version "1.0.10" } group = "com.chandev" version = "0.0.1-SNAPSHOT" val queryDslVersion = "5.0.0" java { sourceCompatibility = JavaVersion.VERSION_17 } configurations { compileOnly { exte.. 이전 1 2 3 다음