전체 글

백엔드 개발자 토발자입니다.
· Java
지금까지 List를 생성할 때 대부분 new ArrayList()를 사용했었다. 회사에서 다른 분들의 코드를 보다가 Arrays.asList()를 이용한 부분이 있었고 참고해서 사용했는데, 차이점을 정확히 알고 싶어 정리하고자 한다. 1. 다른 class, 다른 return type 다른 class : new ArrayList()와 Arrays.asList()는 다음과 같이 class가 다르다. // new ArrayList() import java.util.ArrayList; // Arrays.asList() import java.util.Arrays; new ArrayList()는 ArrayList를 Arrays.asList()는 Arrays의 정적 클래스인 ArrayList를 리턴한다. 아래는 Ar..
우선순위 큐(Priority Queue)와 힙(Heap)에 대해 간단히 알아보자. 우선순위 큐(Priority Queue)란? 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조이다. 어떤 데이터를 우선순위에 따라 처리하고 싶을 때 사용한다. ex) 상품 데이터를 자료구조에 넣었다가 비싼(가치가 높은) 상품부터 꺼내서 조회할 경우 : 이 때 상품의 가치를 상품과 함께 저장해 추출 시 가치가 높은 상품부터 꺼내도록 한다. 여기서 다시 한 번 스택(Stack), 큐(Queue), 우선순위 큐(Priority Queue) 자료구조를 비교/정리해보고 가자. 자료구조 가장 먼저 추출되는 데이터 스택(Stack) 가장 나중에 삽입된 데이터(후입선출) 큐(Queue) 가장 먼저 삽입된 데이터(선입선출) 우선순..
· Tool
Windows 10 Home에서 Docker를 설치해보자. 사실 몇 달 전 토이 프로젝트를 하며 Docker를 사용하고자 설치를 시도했지만 현재 내 노트북에서는 설치가 안됐었다. 이후로 사용하지 않아 내버려두고 있다가 Docker를 공부하며 사용해보고 싶어 다시 설치를 해보았고 성공했다. 1. Docker 사용 가능 여부 확인하기 Windows에 Docker를 설치하기 위해서는 WSL2나 Hyper-V backend and Windows containers 가 설치되어 있어야 한다. Windows에서 Hyper-V를 지원해주는지 확인하기 위해서는 시스템 - 정보에서 Windows 사양을 확인한다. Windows 10 Pro를 사용한다면 Docker를 사용할 수 있지만, Windows 10 Home의 경우..
· Java
HashMap과 HashSet을 사용하며 두 가지의 차이점에 대해 정리하고 싶었다. 간단하게 정리해보자. HashMap vs HashSet 차이점 1. 정의 HashMap : Map Interface의 구현체로 HashTable과 유사한 자료구조로 데이터를 저장한다. HashSet : Set Interface의 구현체로, 내부적으로 HashMap을 사용해 데이터를 저장하기 때문에 HashTable과 유사한 자료구조로 데이터를 저장한다고 할 수 있다. 2. 데이터 저장 형태 HashMap : key-value 형태로 데이터를 저장한다. 각 value들이 key에 mapping되어 있다. HashSet : 객체 그 자체를 저장한다. key 값으로는 삽입되는 객체 자체를, 내부 구현 코드에서 필드로 선언한 객..
개인 프로젝트에서는 쓴 적이 없던, 회사에서 처음 본 속성이다. 그것은 바로 @Transactional의 noRollbackFor 속성. 간단히 말하면 이름 그대로 롤백이 일어나지 않도록 하는 속성이다. 대부분의 비즈니스 로직이 실행되는 Service 단에서 각 메서드마다 @Transactional 어노테이션을 붙여 메서드 내부의 작업들이 하나의 트랜잭션으로 묶여 처리되도록 한다. 물론, Service 단이 아닌 Controller 단에서도 불가피하게 호출하는 Service 단의 메서드가 많다면.. 해당 어노테이션을 사용해 하나의 트랜잭션으로 묶을 수 있다. 이 때, 호출된 해당 트랜잭션이 수행되던 중 어떠한 이유로 에러가 발생한다면 묶여있는 모든 트랜잭션이 rollback 처리가 된다. 하지만! 특정한..
토발자
내가 개발자라니