분류 전체보기
-
[Kafka] 아파치 카프카(Apache Kafka)에 대해서Computer Science/Database 2023. 12. 20. 01:49
어플리케이션에 사용자가 많아지며 트래픽이 증가하고, 요청에 대한 추가작업이 많아질 때 빠른 응답과 성능을 위해 메시지 큐를 사용할 수 있다. 메시지큐는 Producer와 Consumer 사이에서 메시지를 저장하고 전달하는 중간 장치로서, 비동기적으로 작동하며 큐에 담긴 메시지를 처리한다. 메시지큐를 포함하는 메시지 브로커로는 RabbitMQ, Redis, ActiveMQ, Kafka 등이 있다. 그 중 Kafka에 대해 알아보자! (메시지 큐를 모른다면 여기로) Kafka는 왜 생겼을까? Kafka(카프카)는 미국의 대표적인 비즈니스 인맥 소셜 네트워크 서비스인 링크드인(LinkedIn)에서 처음 출발한 기술이다. 링크드인 사이트가 성장하면서 발생했던 여러 이슈들을 해결하기 위해 개발되었다. 기존의 링크..
-
[메시지 큐] 메시지 큐에 대해서 (메시지 큐, MOM, 특징, 이점 등)Computer Science/Database 2023. 12. 10. 21:18
MOM (Message Oriented Middleware) MOM은 메시지 지향 미들 웨어로서 어플리케이션의 메시지를 중간에서 관리해주는 시스템이다. 여기서 미들웨어란 무엇일까? 개념적으로 미들웨어는 응용프로그램과 운영체제 사이에서 두 요소간 차이에 상관없이 통신을 가능하게 해주는 계층을 말한다. 분산 컴퓨팅 환경에서 미들웨어는 분산 네트워크에서 애플리케이션 또는 애플리케이션 구성요소 간에 통신을 가능하게 하는 소프트웨어라고 한다. 미들웨어는 다음과 같은 범주로 나눌 수 있다. RPC(Remote Procedure Call) 기반 미들웨어 ORB(Object Request Broker) 기반 미들웨어 MOM(Message Oriented Middleware) 기반 미들웨어 이 중 MOM은 분산 응용 프..
-
[Redis] Redis에 대해서 (Redis란, 특징, 영속성, 자료구조, 아키텍처)Computer Science/Database 2023. 12. 10. 20:15
데이터와 트랙픽의 양이 기하급수적으로 증가하면서 한대의 관계형 데이터베이스를 사용하는 것은 큰 비용이 든다. 이런 상황에서 NoSQL은 여러 대의 컴퓨터에 데이터를 분산하여 저장하는 것을 목표로 등장했다. NoSQL 데이터베이스 중 하나인 Redis는 key-value 형태로 저장하는 인메모리 데이터 베이스로서 데이터베이스 뿐만 아니라 캐시, 메시지 브로커 및 스트리밍 엔진 등 다양한 용도로 사용되는 오픈소스이다. Redis에 대해서 자세히 알아보자! 📍 Redis란? Redis는 Remote Dictionary Server의 약자로 외부 딕셔너리(key-value) 형태의 서버이다. NoSQL 데이터베이스 중 하나로 고급 키-값 저장소이다. In-Memory 데이터 베이스로서 memcached와 유사한..
-
[Spring] Spring MVC에서 AOP 설정 (feat. 루트 컨텍스트와 서블릿 컨텍스트)Backend/Spring 2023. 10. 24. 11:56
🥑 AOP 관점 지향 프로그래밍(Aspect Oriented Programming) 핵심 관심 사항과 공통 관심 사항을 분리하는 프로그래밍 방식 핵심 관심 사항에 적용되는 공통 관심 사항에 대해 모듈로 만들어 코드의 중복을 줄이고 핵심 로직에 집중한다. 스프링에서 AOP target에 대해 프록시로 감싸고 프록시가 메소드 호출이나 반환 시에 이를 가로채서 advice에 따라 Aspect의 코드를 실행하거나 target 함수를 호출한다. 📍 Spring MVC에 AOP 적용하기 공통 관심 사항 (Aspect) 공통 관심 사항에 대해 모듈 생성 @Aspect 애노테이션을 통해 공통 관심 사항임을 설정 @Pointcut 애노테이션과, 시점(@Before, @AfterReturning, @AfterThrowin..
-
[SQL] 집계 함수를 쓰기 어려울 때 over()와 서브 쿼리 중 뭐를 사용해야 할까?Computer Science/Database 2023. 10. 13. 17:52
🎈시작 MySQL에서 world database를 사용해 쿼리를 뚱땅거리던 중 다음과 같은 쿼리를 작성해야하는 경우가 있었다. 어떤 데이터에 대한 조회를 해야할 때 각 튜플의 데이터를 확인하면서 튜플이 속한 그룹의 평균 값을 확인하고 싶은 경우가 있었는데 (예를 들자면 전체 학생을 조회할 때 학생이 속한 반의 평균 키를 함께 조회하고 싶은 경우...) 여기서 over와 서브쿼리를 사용하며 알게된 점을 작성해보려고 한다. 🧩 서브 쿼리와 OVER() 본문에 들어가기 전 서브 쿼리와 OVER() 가 무엇인지 알아보자 서브 쿼리 서브 쿼리란 SQL 쿼리 내에서 다른 SQL 쿼리의 일부로 사용되는 쿼리이다. 즉, 하나의 쿼리 안에 다른 SQL 쿼리가 포함되는 것! 예를 들어, 도시 테이블에서 전체 인구 평균 이..
-
[BOJ-JAVA] 2206 : 벽 부수고 이동하기Algorithm/Baekjoon Online Judge 2023. 7. 27. 17:51
문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 문제에 대해 간략하게 설명해보자면 이동할 수 있는 위치 0과 벽으로 막힌 위치 1로 만들어진 N*M 크기의 맵에서 (1,1)에서 출발해 (N,M)에 도착하는 최단 경로를 구해야 한다 중요한 점은 한 칸에서 이동할 수 있는 곳은 상하좌우이며 최단 경로는 시작과 도착 칸을 포함한 칸의 개수 기준 이때, 경로상에서 딱 한번 벽을 부수고 지나갈 수 있음 문제풀이 💡 초기 접..
-
[SSAFY] SSAFY 10기 전공자 지원 및 합격 후기SSAFY 2023. 7. 20. 12:01
💙 SSAFY란?삼성의 SW 교육 경험과고용노동부의 취업지원 노하우를 바탕으로취업 준비생에게 SW 역량 향상 교육 및 다양한 취업지원 서비스를 제공하여 취업에 "성공"하도록 돕는 프로그램이다.전국의 청년들에게 동일한 교육 기회를 제공하기 위해 서울과 대전, 광주, 구미, 부울경(부산 소재) 총 5개 지역에서 캠퍼스를 운영하고 있으며, 교육생들은 원하는 곳에서 교육을 받을 수 있다. 🌟 SSAFY의 좋은점!Coding Track(Java, Python), Embedded Track, Mobile Track(Kotlin) 중 원하는 트랙의 교육 이수삼성전자를 비롯한 IT기업 취업과 연계된 금융권의 채용 시 SSAFY 교육생 우대 혜택 제공매달 100만원의 교육 지원금 제공 ❗❗대전, 광주, 구미, 부울경..
-
[해커톤] 2023 SW중심대학 공동해커톤 후기해커톤 2023. 7. 13. 22:43
💻 SW 중심대학 공동해커톤이란? SW중심대학 사업에 참여하는 총 51개의 대학교를 대상으로 진행하는 해커톤이다. 각 대학마다 5명의 참여자(디자이너1명, 개발자4명)를 선정해 참여시키고, 서로 다른 대학교의 학생들과 팀을 결성하여 프로젝트를 진행한다. 📍 시작에 앞서 우리 대학교에서는 서류평가와 면접평가로 대상자를 모집했는데 나는 이번에 개발자로 참여하게 되었다. (5명 안에 뽑힌 것에 나름 뿌듯하달까...ㅎ) 오프라인으로 진행되고 방학 중 3일에 장소도 멀다보니 조금 고민을 했는데, 해커톤에 참여해본 적이 없어서 경험삼아 신청을 하게 되었다. 더불어 매일 우리학교 사람들과 프로젝트 하는 것에 조금 질려서 다른 대학교의 사람들과 프로젝트를 진행해보고 싶기도 했다. 결과적으로 아주 만족하는 경험!! 무엇..