Rumos

[Gitlab CI/CD 1] CI 적용하고 CD는 비동기 처리하기

인턴십에서 개발에 참여한 프로젝트의 배포 자동화 업무를 담당하게 되었다. 처음에는 기존에 회사에서 사용하고 있던 방식으로 배포했는데, 이 방식이 온프레미스 서버에 수동으로 배포하는 작업이었다. 이를 위해서 애플리케이션을 로컬에서 빌드하고, 빌드한 이미지를 서버에 보낸 후 서버에 접속해서 run하는 절차를 거쳐야 했다. 불필요하게 반복적인 작업을 자주...

익숙한 MySQl 대신 MongoDB 도전하기

많은 프로젝트 경험이 있는 것은 아니지만, 프로젝트를 할 때마다 도구에 대한 고민이 큰 편은 아니었다. 데이터베이스설계 과목으로 인해 MySQL은 친숙했고, 인턴십에서 진행하는 프로젝트의 데이터베이스는 MariaDB 이다보니 NoSQL에 대한 고려는 전혀 하지 않았었다. ✅ 하지만 인턴십을 진행하면서, 매일 6500 정도의 사용자가 활발히 이용하는 ...

[메시지 큐] RabbitMQ, ActiveMQ

메시지 지향 미들웨어(MOM) 응용 소프트웨어 간의 비동기적 데이터 통신을 위한 소프트웨어 메시지를 전달하는 과정에서 보관/라우팅/변환 할 수 있다는 장점을 가진다. 보관 : 메시지의 백업 기능을 유지함으로써 지속성 제공 → 송수신 측은 동시에 네트워크 연결을 유지할 필요가 없다. 라우팅 : 미들웨어 계층이 직접 메시지 라우팅 수행...

[운영체제] 메시지 전달의 설계 이슈와 RabbitMQ

이번 방학 때 좋은 기회로 GDSC-CAU : 푸앙이 사진관 프로젝트에 백엔드 개발자로 참여하게 되었다. 메시지 큐로 몰려드는 AI 프로필 생성 요청을 관리하는 파트를 맡게 되었다. 메시지 큐 도구들을 살펴보기 전에, 운영체제에서 메시지 전달에 대해 복습하면서 기존 메시지 큐 도구들을 살펴보면 좋을 것 같아 글을 남긴다! 프로세스들이 서로 ...

[Spring/Database] Spring JPA와 Spring Data JPA

✅ 🏝️ Fairy-Tale Island 🏝️ 리팩토링! Spring Database 접근 방식 Spring에서 데이터베이스에 접근하는 방식들을 알아본다. ORM 이전의 접근 방법들과 단점을 알아보고, 이를 보완하기 위해 등장한 ORM의 개념과 Spring에서 사용하는 Java ORM 기술을 알아본다. #1 [Database] ORM 정의, 등장...

[Database] ORM 정의, 등장 배경, 장단점

✅ 🏝️ Fairy-Tale Island 🏝️ 리팩토링! 2월에 개발을 할 때, 어떤 것은 Repository 인터페이스에 선언만 하고 사용할 수 있고, 어떤 것은 그것만으로 불충분해서 쿼리를 작성해야 하는 경우가 있었다. JPA의 장점이라고 하는 인터페이스 선언만으로 사용할 수 있는 것에 대해서 흐릿하게 아는 상태에서 JPA를 사용하다보니, 혹시 ...