전체 글

▶Queue란? Queue는 앞뒤가 뚫려있는 쇠파이프를 떠올리면 이해하기 쉽다. 우리는 쇠파이프의 뒤로 차곡차곡 데이터를 넣을것이다. 그 후 데이터를 꺼내고싶으면 그 데이터를 앞에서 꺼낼 것이다. 즉, 먼저 들어가 데이터가 가장 먼저 나오게 된다. 이것을 First In First Out(FIFO) 데이터 구조라고 부른다. 원형큐는 이 파이프를 동그랗게 만든것이다. 동그랗게 만들면 메모리를 아낄 수 있다는 장점이 있다. ▶큐의 ADT 데이터를 집어넣을 수 있는 선형(linear) 자료형 FIFO(First In First Out) - 먼저 집어넣은 데이터가 먼저 나옴 데이터를 집어 넣는 enqueue, 데이터를 추출하는 dequeue 등의 작업을 할 수 있음큐는 순서대로 처리해야 하는 작업을 임시로 저장..
▶Stack이란? 스택은 프링글스통을 생각하면 이해하기 쉽다. 차곡차곡 쌓여져있는 맛있는 프링글스를 생각해보자. 우리는 프링글스의 위에서부터 꺼내먹는다. 즉, 가장 나중에 들어온 프링글스부터 꺼내먹는다. 이것을 자료구조에서는 마지막에 추가된 항목이 가장 먼제 제거되는 Last In First Out(LIFO) 데이터 구조라고 부른다. ▶스택의 ADT 데이터를 집어넣을 수 있는 선형(linear) 자료형 LIFO(Last In First Out) - 나중에 집어넣은 데이터가 먼저 나옴 데이터를 집어넣는 push, 데이터를 추출하는 pop, 맨 나중에 집어넣은 데이터를 확인하는 peek 등의 작업을 할 수 있음 스택은 서로 관계가 있는 여러 작업을 연달아 수행하면서, 이전의 작업 내용을 저장해 둘 필요가 있..
다형성 : 하나의 메서드나 클래스가 있을 때, 그것이 다양한 방법으로 동작하는것 자바는 오버로딩과 오버라이딩을 통해서 다형성을 지원한다. 오버로딩(Overloading) 같은 이름의 메서드 여러개를 가지면서, 매개변수의 유형과 개수를 다르게 사용하는것 오버라이딩(Overriding) 상위 클래스(부모클래스)가 가지고 있는 메서드를, 하위클래스(자식 클래스)가 재정의 해서 사용하는 것. ▶오버로딩(Overloading) 같은이름의 메서드를 여러개 정의하고 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있도록 하는 방식이다. //오버로딩 예제 public class Test { public void overloadingTest(){ System.out.println("매개변수 없지롱"..
개발을 하다보면 Entity에서 필드를 만들 때 원시타입인 long 대신 래퍼클래스인 Long을 사용하는 걸 많이 봤을 것이다.왜 long를 안쓰고 Long를 쓸까?이 둘의 차이점은 무엇일까? 궁금해졌다. 바로 알아보자. ▶원시타입(Primitive type)과 래퍼클래스(Wrapper Class)란?일단 원시타입은 뭐고 래퍼클래스는 뭘까?  이 사진을 보면 이해가 될 것이다.기본자료형이 원시타입이고, 래퍼클래스는 원시타입을 객체화 한 것이다. 원시타입(기본자료형)은 언제나 값이 존재한다.필드에서 초기화하면 디폴트 값으로 0에 준하는 값이 들어가며, 메소드나 클래스 내에서는 초기화 및 선언을 같이 해줘야 실행이 된다. (초기화만하면 에러 발생) 래퍼클래스는 값이 존재하지 않는 "NULL" 상태일 수 있다..
Spring Data JPA에서 Entity에 기본 생성자가 필요한 이유가 무엇일까?@NoArgsConstructor(accsee = AccseeLevel.PROTECTED)를 왜 붙이는거지? 궁금해졌다.궁금하면 공부해야지~    ▶Reflection이란?그 전에 알아야하는것이 있다. Reflection은 Java에서 제공하는 API이다. Reflection은 구체적인 클래스 타입을 알지 못해도!클래스의 메서드나, 타입, 변수들에 접근할 수 있도록 해주는 API이다. 아니? 이게 어떻게 가능하죠? 클래스나 메소드가 프라이빗하면요??그걸 알아보기 전에! Reflection이 무슨 의미인지 아는가?반사라는 의미이다. 즉 클래스 자체를 조작하는것이 아니라, 반사된 클래스를 조작해서 클래스에 영향을 주는것이다...
현재 백엔드 세미나에서는 쇼핑몰 만들기 프로젝트로 공부를 한다. 2주차 과제는 Service와 Entity, 각 상황에 맞는 DTO를 만들어서 Controller와 연결하기였다. 이 과제를 하면서 알게된것을 정리해보자면 1. Entity에서 원시타입과 래퍼클래스를 사용하는 기준 2. Builder 패턴과 Lombok의 @Builder 3. @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor에 관해서 더 자세히 4. @AllArgsConstructor와 @RequiredArgsConstructor의 문제점 5. 그럼에도 불구하고 내가 RequiredArgsConstructor 어노테이션을 사용하는 이유 6. @NoArgsConstructor..
LearningStudy
끊임없는 탐구