일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- string
- 리팩토링
- 책임
- 자바
- cache
- 스프링부트
- 캡슐화
- 추상화
- 객체지향
- SRP
- 쿼리 최적화
- spring boot
- clean code
- Refactor
- 도메인 모델
- 캐시
- Java
- JIT
- 스프링
- 협력
- 클린코드
- 재사용성
- 객체지향의 사실과 오해
- JPA
- 클린 코드
- 객체
- REST API
- 인터프리터
- Lombok
- 캐싱
- Today
- Total
목록Develop (54)
GO SIWOO!

📌 큐란 무엇인가? 큐(Queue)는 스택과 마찬가지로 데이터를 일시적으로 쌓아 두기 위한 자료구조이다. 앞서 스택과는 다르게 선입 선출(FIFO, First In First Out), 처음 들어온 것이 처음으로 나간다는 뜻으로 뒤쪽(rear)에 데이터를 삽입하고 앞쪽(front)에서 데이터를 꺼낸다. 여기서 데이터를 삽입하는 것을 인큐(Enqueue), 데이터를 꺼내는 것을 디큐(Dequeue)라고 한다. 다음은 인큐(Enqueue)가 일어는 곳이 뒤쪽(rear), 디큐(Dequeue)가 일어나는 곳이 앞쪽(front)이다. 🔍 큐의 특징 한쪽에서만 데이터의 삽입, 삭제가 이루어지는 스택과 다르게 삽입, 삭제 작업이 양쪽에서 이루어진다. 접근이 가능한 데이터는 front와 rear 2곳 뿐이다. 우선순..

📌 스택이란 무엇인가? 스택(Stack)은 데이터를 일시적으로 저장하기 위해 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입 선출(LIFO, Last In First Out), 마지막에 들어온 것이 먼저 나간다는 뜻이다. 스택에 데이터를 넣는 작업을 푸시(push), 꺼내는 작업을 팝(pop)이라고 한다. 아래는 스택에 푸시와 팝을 하는 과정을 그림으로 표현한 것이다. 후입 선출의 원리에 따라서 팝을 했을 때에 마지막에 푸시된 45가 꺼내지는 것을 볼 수 있다. 🔍 스택의 특징 같은 구조, 크기의 자료를 한쪽으로만 넣고 뺄 수 있다. (Top에서만 가능) 재귀 알고리즘에서 재귀적 실행을 줄이기 위해서 사용된다. 구조가 단순하여 구현이 쉽고 데이터 저장/읽기 속도가 빠르다. 📌 스택의 구성요소 스택..

- 버블 정렬이란 무엇인가? 버블 정렬은 이웃한 두 요소의 대소 관계를 비교하여 교환을 반복하는 정렬이다. 위의 배열에서 첫 째 pass에서는 배열의 [0]과 [1]번째 인덱스를 비교하여 오름 차순이 아닐경우 두 배열의 순서를 바꾸어 준다 (swap) 이를 [0] ~ [1]의 비교에서 [n - 2] ~ [n - 1]까지의 비교를 통해서 배열에서 제일 큰 값을 배열의 마지막에 저장을 하고 둘 째 pass에서는 첫 째 pass와 같이 [0] ~ [1]의 비교에서 [n - 3] ~ [n - 2]까지 비교를 통해서 배열에서 둘 째로 큰 값을 정렬한다. 이와같은 방법으로 총 (n - 1)번의 pass를 지나면 버블 정렬이 완료된다. - 버블 정렬 구현 ver.1 본 포스트에서는 버블 위에서 설명한 인덱스가 적은 ..

- Service를 사용하는 이유 기존 스프링 부트의 MVC 구조에서는 사용자의 DB에 대한 요청(Request)을 프론트 컨트롤러(Controller)에서 받고 이 요청을 컨트롤러(DAO)에서 직접 DB로 작업을 처리 후 결과값을 프론트 컨트롤러에 반환 하고 이를 뷰(JSP)에서 결과를 렌더링 하는 방식이다. 하지만 이런 기존의 MVC 방식은 DB의 여러 테이블을 다루게 된다면 프론트 컨트롤러에서 모든 테이블을 관리하게 되는데 이는 데이터 처리에 있어서 유연성이 떨어지게 된다. 이러한 유연성을 보완하기 위해서 서비스(Service)단을 만들게 되는데 Service단은 DAO를 호출하고 데이터 접근, 갱신을 하여 이로인한 비즈니스 로직을 수행한다. 이로인해 프론트 컨트롤러는 Request를 받고 Serv..