2022-12-19-TIL TIL 2022-12-19-TIL Today I Learned Layered Architecture 계층형 아키텍처는 애플리케이션을 역할별 층으로 나누는 구조다. Martin Fowler는 가장 흔한 형태로 프레젠테이션(HTTP 요청 처리와 화면), 도메인(검증과 계산 같은 업무 로직), 데이터 소스(DB나 외부 서비스 접근) 세 층을 든다. 층을 나누... 2022/12/19 2022-TIL
2022-12-17-TIL TIL 2022-12-17-TIL Today I Learned 상속과 합성을 비교하고 Go가 상속 없이 합성만으로 재사용을 하는 방식을 봤다. 이어서 WebFlux와 Kotlin 코루틴 환경에서 트랜잭션이 어떻게 동작하는지, EntityManager의 스레드 안전성, Feign, 배치와 스케줄러의 차이를 정리했다. Inheritance vs Comp... 2022/12/17 2022-TIL
2022-12-15-TIL TIL 2022-12-15-TIL Today I Learned 하드코딩의 의미를 다시 확인하고, Spring Boot에서 Logback을 설정하는 방법과 로그 포맷, 참고할 만한 오픈소스 CMS 프로젝트를 정리했다. 하드코딩이란 테코블 글은 하드코딩을 프로그램 소스 코드에 데이터를 직접 입력해 저장하는 것으로 정의한다. 파일 경로, URL이나 IP... 2022/12/15 2022-TIL
2022-12-13-TIL TIL 2022-12-13-TIL Today I Learned 함수형과 객체지향 패러다임의 차이, Spring Boot 프로젝트의 계층 구조, 그리고 XSS 방어를 정규식으로 할 수 있는지를 찾아봤다. Functional vs Object-Oriented Programming 두 패러다임은 상태를 다루는 방식에서 가장 크게 갈린다. 객체지향은 상태... 2022/12/13 2022-TIL
2022-12-12-TIL TIL 2022-12-12-TIL Today I Learned 검색 엔진을 고를 때 자주 나오는 Elasticsearch와 OpenSearch의 관계, Elasticsearch를 공부할 자료, 그리고 Spring Boot와 MyBatis 조합에서 테스트를 작성하는 방법을 정리했다. Elasticsearch vs OpenSearch 두 제품은 원래 ... 2022/12/12 2022-TIL
2022-12-10-TIL TIL 2022-12-10-TIL Today I Learned 객체지향 프로그래밍(OOP)의 기본 개념을 다시 정리했다. 다형성과 추상화를 따로 보고, 앨런 케이가 OOP라는 말을 만들 때 의도했던 의미를 함께 읽었다. OOP 객체지향은 프로그램을 데이터와 그 데이터를 다루는 행동을 묶은 객체들의 협력으로 구성하는 방식이다. 흔히 캡슐화, 상속, ... 2022/12/10 2022-TIL
2022-12-06-TIL TIL 2022-12-06-TIL Today I Learned HA 구성 HA(High Availability, 고가용성) 구성이란, 가용성을 극대화 시키는 구성을 말하는 것으로 ‘클러스터링, 이중화, RAID’는 HA를 이루기 위한 방식으로 볼 수 있다. HA 구성은 주로 ‘서버 이중화’라는 용어와 동일하게 쓰이기도 한다. 여기서 ‘가용성’이라는 말은... 2022/12/06 2022-TIL
2022-12-05-TIL TIL 2022-12-05-TIL Today I Learned 오디오 파일의 재생 시간과 메타데이터를 서버에서 읽어 내는 방법을 찾으면서 WAV, MP3 포맷 구조와 Java, JavaScript에서 쓸 수 있는 도구를 정리했다. 마지막에는 JPA에서 컬럼 기본값을 주는 방법을 따로 정리했다. WAV File Format Specification ... 2022/12/05 2022-TIL
2022-12-01-TIL TIL 2022-12-01-TIL Today I Learned FFmpeg in Spring Boot FFmpeg은 영상과 음성을 변환, 자르기, 인코딩, 스트리밍용으로 분할하는 커맨드라인 도구다. Java에는 FFmpeg을 대체할 만한 순수 라이브러리가 마땅치 않아서, Spring Boot 애플리케이션에서는 서버에 FFmpeg을 설치해 두고 Proce... 2022/12/01 2022-TIL
2022-11-28-TIL TIL 2022-11-28-TIL Today I Learned 배포할 때 고려해야할 사항 서버의 배포를 할 때 고려해야할 순서가 있다. 먼저, 배포 대상 서버의 순서를 정한다. 예를 들어, FE 서버가 BE 서버의 API에 의존하고 있다면, BE 서버를 먼저 배포하고나서 FE 서버를 배포해야한다. 물론, 이때는 만일 FE에서 사용(의존)하고 있는 API... 2022/11/28 2022-TIL