MySQL 서버 전체 구조 MySQL 서버는 머리 역할을 하는 MySQL 엔진과 손발 역할을 하는 Storage 엔진으로 구성되어 있고 MySQL 엔진은 핸들러 API를 통해 Storage 엔진에 요청을 보냅니다. MySQL 엔진 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행하며 다음과 같은 구성 요소를 가집니다. 커넥션 핸들러: 클라이언트로부터 접속 및 쿼리 요청을 처리 SQL 파서 전처리기 옵티마이저: 쿼리의 최적화된 실행 핸들러 API MySQL 엔진의 쿼리 실행기에서 데이터를 쓰거나 읽어야 할 때 각 스토리지 엔진에 쓰기 또는 읽기를 요청하는데 이를 핸들러 요청이라고 하고 이때 쓰이는 API가 핸들러 API입니다. 핸들러 API를 만족하는 새로운 스토리지 엔..
개발 중 하나의 리스트를 다양하게 필터해서 다음 처리를 진행하는 로직을 구현했던 적이 있습니다. 이때 같은 리스트를 대상으로 여러가지 연산, 필터 등이 다양한 곳에서 사용되는 것을 보고 선배 개발자분께서 "일급 컬렉션"을 사용하면 훨씬 좋은 코드가 될 것 같다는 조언을 해주셨습니다. 그래서 해당 코드를 일급 컬렉션을 사용하여 개선한 경험에 대해 적어보고자 합니다. 일급 컬렉션 (First Class Collection) 클래스가 컬렉션을 Wrapping 하면서, 그 외 다른 멤버 변수가 없는 상태를 말합니다. 예를 들면 다음과 같은 리스트가 있다고 할 때 List applicants = new ArrayList(); for (String name : names) { applicants.add(new Ap..
회사에서 최근 데이터를 블록체인에 저장하려고 하면서 관련된 새로운 API 서버와 연동을 해야하는 작업을 진행했었습니다. 기존 로직과 동일하긴 하지만 부분 부분 수정이 필요하였고 그러다보니 재개발 수준까지 가게 된 것 같습니다... 이쯤되니 잘 모르긴 해도 신규 개발에 맞는 아키텍처가 필요했고 클라이언트, 외부 서비스와 연동하면 자주 변경되는 요청, 응답 부분과 비즈니스 로직을 분리할 필요를 더 절실하게 느끼게 되었습니다. 그래서 새로운 아키텍처를 고민하던 중 헥사고날 아키텍처를 알게 되었고 이를 적용해본 과정에 대해 적어보려고 합니다. 헥사고날 아키텍처 (Hexagonal Architecture) 사전적 의미로는 "육각형 건축물"을 뜻하는 헥사고날 아키텍처(=포트와 어댑터 아키텍처(Ports and Ad..
최근 회사에서 API 문서를 Spring Restdocs 로 작성하고 있습니다. 이를 사용하여 일반적인 요청,응답은 작성을 하고 있었는데 추가로 요청 사항이 있었고 이를 개선한 과정에 대해 적어보려고 합니다. (Spring Restdocs 적용을 위한 초기 설정 + 아래 내용 코드는 여기를 참고해주세요!) 가장 큰 요청 사항은 Enum 값을 확인하기 어렵다는 것이었습니다. 현재 진행하는 프로젝트에서는 다양한 코드값들을 Enum으로 사용하고 있었는데 일반적인 요청, 응답을 보면 description 영역에 모든 값들이 표시되지 않아 별도 문서를 확인해야 하는 불편함이 있었습니다. 이를 해결하기 위해 enum 값을 별도로 확인할 수 있는 api를 생성하고 조회할 수 있도록 하였습니다. 프로젝트 내 모든 en..
Java 9 부터 List 생성 시 List.of() 메소드를 사용할 수 있게 되었습니다. 이를 알게 된 이후로 자주 이 메소드를 사용해서 List 생성을 해왔습니다. 그런데 코딩을 하던 중 이렇게 만든 리스트에 값을 변경( add() 등)하는 일이 생겼는데 다음과 같은 에러가 발생했습니다. Exception in thread "main" java.lang.UnsupportedOperationException 해당 연산을 지원하지 않는다는 것으로 해서는 안되는 연산을 해서 발생한 에러였습니다... List.of() 메소드를 살펴보니 다음과 같았습니다. static List of(E e1) { return new ImmutableCollections.List12(e1); } of 메소드는 불변 컬렉션 생성..
- Total
- Today
- Yesterday
- ionic
- 프로그래머스
- Combination
- CodeDeploy
- BFS
- DFS
- string
- Baekjoon
- 조합
- 에라토스테네스의 체
- 소수
- search
- sort
- SWIFT
- EC2
- CodePipeline
- AWS
- CodeCommit
- Dynamic Programming
- permutation
- cloudfront
- java
- ECR
- spring
- programmers
- array
- map
- 수학
- 순열
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |