일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- prometeus
- 파이썬
- supabase
- java
- C++
- umc
- docker
- 화자분리
- DI
- template/callback
- mybatis
- elastic search
- ELK
- devops
- OpenSource
- API Gateway
- 자료구조
- Nice
- roll over
- metricbeat
- 메소드
- fosslight
- konga
- 하이브리드 데이터 모델
- monitoring
- Spring
- pyannote
- jwt-java
- kong
- curl
- Today
- Total
목록전체 글 (157)
youngseo's TECH blog

개요이번에 사내 스터디로 진행했던 데이터 플랫폼 설계와 구축 책 내용을 정리해보았습니다. 후기에서도 볼 수 있듯이 번역본이라 힘 들여서 읽어야 하는 부분도 있긴 하나, 전반적으로 ETL 과정에서 놓치기 쉬운 부분들을 보기 쉽게 정리해두어서 공부에 도움이 많이 되었습니다 🤩Extract: 하나 또는 그 이상의 데이터 원천들로 부터 데이터 추출Transform: 추출한 데이터를 요구사항에 맞게 변경하는 작업Load: 변형 단계의 처리가 완료된 데이터를 특정 목표 시스템에 적재회사에서, 외부 업체에서 받아온 데이터들을 사내 데이터 스키마에 맞게 가져와 적재하는 프로세스를 구축하는 작업을 진행했다. 당시 작업 내용을 회고하고, 이후 다른 형태의 ETL 작업을 경험할 수도 있으니 다방면의 상황에서의 해결방법을 ..

만들면서 배우는 클린 아키텍처 책을 읽고 적은 내용입니다.Book Contents전통적인 계층형 아키텍처(layered architecture, 소위 MVC 패턴) 스타일과 이 스타일의 단점을 논하는 것에서부터 시작하여, 도메인 중심 아키텍처의 장점을 설명하고 있다. 아키텍처의 경계를 강제하는 방법과 아키텍처가 주는 이점을 배울 수 있다. Layered Architecture의 모습우리가 알고있는 가장 대표적인 계층형(Layered) 아키텍처의 모습이다. |-- domain | | | |-- Account | |-- Activity | |-- AccountRepository | |-- AccountService | |--persistence | |--..

제 4회 KAUPC 알고리즘 경진대회 KAUPC:2024단, 2022 KAUPC의 경우 기출문제의 해답이 제공되지 않습니다.kaupc2024.netlify.app대회 개최우리 학교는 경인지역 6개 대학 소속으로 매년 SHAKE! 대회에 참여하고 있다. 이 대회에 참여하기 위한 10명의 인원을 교내에서 자체적으로 선발하고 있고 매년 KOALA 동아리에서 주최하는 KAUPC로 선발하게 된다 ! 이번 년도는 백준이 아닌 코드트리 사이트에서 진행되었다. 코드트리는 알고리즘을 학습하고 코딩테스트를 연습할 수 있는 플랫폼으로, 우리학교 소중대와 연계되어있으며 교내 스터디나 프로그램들도 많이 시행하고 있다. 문제 출제는 3월부터 미리미리 준비했고 출제진은 kau0303, engus525, beans3142, 20wj..

2024 당근 Summer 인턴 백엔드 직무에 합격하게 되었다 🎉 포트폴리오와 이력서당근 인턴 서류 전형에서는 이력서와 포트폴리오를 제출해야 한다.포트폴리오는 소마 면접 때 제공받은 노션 틀을 그대로 사용하였고, 프로젝트 별로 내용 -> 발생 문제 및 해결방법 -> 아키텍처 순서대로 상세하게 기록하였다. 이력서에는 프로젝트 별 주요한 내용들만 뽑아 요약한 후 자세한 사항들은 커밋이나 포트폴리오 주소를 달아 표기하였다.포트폴리오 가독성을 높이기 위해 버스나 지하철에서 정말 많이 읽어보고 수정하는 작업을 반복했는데, 정성을 쏟은 보람이 있었다 :) 서비스 제출칸이전년도 대비 이번 당근 인턴 서류의 가장 큰 차이점은 서비스 제출칸이었다. 배포~운영 까지 해본 서비스에 대한 기술을 해야했고, 50명 정도의 유..

과제진행 중인 프로젝트에서 검색 기능 구현 과제를 맡게 되었다. 키워드(ex. 헤어)를 인풋으로 받아 요청하면, 키워드가 포함된 포트폴리오 리스트들을 반환받아야 한다. 단순히 MySQL의 LIKE, OR 문법을 사용하여 구현할 수 있지만, OpenSearch(ElasticSearch) 검색엔진을 사용하게 되면 역인덱싱이 가능하기에 훨씬 빠르게 검색 기록을 가져올 수 있다. ElasticSearch(OpenSearch)의 역인덱싱 로직에 대한 설명은 이전 블로그 글에서 참고할 수 있다. AWS OpenSearch vs ElasticSearchAWS OpenSearch는 ElasticSearch를 기반으로 만들어진 툴이다. ElasticSearch와 OpenSearch의 역사(?)를 알아보면 재미있는 내용들..

https://youngseo-computerblog.tistory.com/158 에 이어지는 글입니다.트러블 슈팅Elastic Beanstalk을 사용하다 여러 문제 상황에 부딪히면 어디에서 발생하는 문제인지 찾기가 너무 어렵다.. 우선 AWS에서 친절하게 Elastic Beanstalk 내부 작동과정을 설명해주지 않을 뿐더러 에러 로그에 대한 해결방법 내용이 잘 나와있지 않다 🥲그래도,, 용을 쓰고 EC2를 뜯어보고, eb-engine.log를 참조하며 해결할 수 있었다. 1. 환경변수 를 못 읽는 문제Failed to parse the host:port pair '${RDS_HOSTNAME}:${RDS_PORT}'ElasticBeanstalk으로 RDS를 연동할 경우 자동으로 연동된 RDS의 H..

Lost Update 문제Tomcat(Java/SpringBoot)와 같은 멀티쓰레드 환경에서 트랜잭션 격리 수준으로 온전히 해결되지 않는 동시성 문제가 있다. 바로 Lost Update 현상이다. 아래 예시를 살펴보자. A 트랜잭션이 data를 0으로 읽었고, B 트랜잭션이 끼어들어 data를 0으로 읽었다. (잘못 읽었음에도) A는 +1 연산을 수행하고 B 또한 +1 연산을 수행한다. 최종적으로 원한 값은 2였으나 Update 하나를 잃어버려 +1의 결과값을 갖게 되었다.결론부터 말하면, 이 문제를 해결하기 위해 DB Lock 을 사용할 수 있다.문제가 되는 코드아래는 Member가 WishList를 추가하는 과정에서 Portfolio에 wishListCount 필드를 +1 해주는 과정이다.우선 요청..

모두가 알다시피 인증 기능 구현은 매우 무겁다 😬현재 진행 중인 프로젝트는 모바일 기반 플랫폼 서비스로, OAuth2.0를 사용한 카카오, 구글, 애플 로그인을 구현하는 것을 목표로 하고 있다. 그러나 소셜 로그인 기능의 경우 메인로직이 아닐 뿐더러, 유저 입장에서 거부감도 심하게 들 것이고, 우리 팀도 OAuth2.0를 모두 이해해 구현하기에는 2주 정도의 시간이 허비될 것 같아 간단히 유저만 구분할 수 있는 로직으로 1차 배포를 진행하기로 하였다.SpringSecurity 를 사용한 이유SpringSecurity는 Springboot로 들어오는 Request/Response와, 실질적인 CRUD를 처리하는 DispatcherServlet 사이의 Filter chain 형태로 이루어져 있다. (Req..