분류 전체보기
-
Docker 에 대해 학습하고 직접 실행하며 배우고 느낀 것들에 대해 정리하고 공유하고자 글을 작성한다 📖 Docker 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고, 배포하고 실행할 수 있도록 설계된 도구이며 컨테이너 기반의 오픈 소스 가상화 플랫폼 일반 컨테이너 개념에서 물건을 손쉽게 운송해주는 것처럼 어플리케이션 환경에 구애받지 않고 손쉽게 배포 관리를 할 수 있게 해준다. 컨테이너 기반 배포 방식은 구글을 비롯해 대부분 서비스 회사가 컨테이너로 서비스 운영 중 따라서 AWS, Azure, GC 등 어디서든 실행이 가능하다. Docker 를 왜 사용해야 할까? 똑같은 일을 하는 2대의 서버가 있다 해도, A 서버는 1년 전에 구성했고 B 서버는 이제 막 구성했다면 운영체제부터 컴파일러, 설치된 ..
[Docker] Docker란 ?Docker 에 대해 학습하고 직접 실행하며 배우고 느낀 것들에 대해 정리하고 공유하고자 글을 작성한다 📖 Docker 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고, 배포하고 실행할 수 있도록 설계된 도구이며 컨테이너 기반의 오픈 소스 가상화 플랫폼 일반 컨테이너 개념에서 물건을 손쉽게 운송해주는 것처럼 어플리케이션 환경에 구애받지 않고 손쉽게 배포 관리를 할 수 있게 해준다. 컨테이너 기반 배포 방식은 구글을 비롯해 대부분 서비스 회사가 컨테이너로 서비스 운영 중 따라서 AWS, Azure, GC 등 어디서든 실행이 가능하다. Docker 를 왜 사용해야 할까? 똑같은 일을 하는 2대의 서버가 있다 해도, A 서버는 1년 전에 구성했고 B 서버는 이제 막 구성했다면 운영체제부터 컴파일러, 설치된 ..
2024.02.11 -
ElasticSearch란 ? 📌 ElasticSearch란? Elasticsearch는 Apache Lucene(아파치 루씬) 기반의 Java 오픈 소스 분산 검색 엔진이다. Elasticsearch를 통해 루씬 라이브러리(Java에서 개발한 정보 검색용 라이브러리)를 단독으로 사용할 수 있으며, 방대한 양의 데이터를 신속하게(거의 실시간) 저장, 검색, 분석을 수행할 수 있다. Elasticsearch는 검색을 위해 단독으로 사용되기도 하며, ELK(Elasticsearch / Logstash / Kibana) 스택으로 사용되기도 한다. ELK 스택은 다음과 같다. LogStash : 다양한 소스(DB, csv파일 등) 의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 ElasticSearch ..
ElasticSearch란ElasticSearch란 ? 📌 ElasticSearch란? Elasticsearch는 Apache Lucene(아파치 루씬) 기반의 Java 오픈 소스 분산 검색 엔진이다. Elasticsearch를 통해 루씬 라이브러리(Java에서 개발한 정보 검색용 라이브러리)를 단독으로 사용할 수 있으며, 방대한 양의 데이터를 신속하게(거의 실시간) 저장, 검색, 분석을 수행할 수 있다. Elasticsearch는 검색을 위해 단독으로 사용되기도 하며, ELK(Elasticsearch / Logstash / Kibana) 스택으로 사용되기도 한다. ELK 스택은 다음과 같다. LogStash : 다양한 소스(DB, csv파일 등) 의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 ElasticSearch ..
2024.01.23 -
자바 ORM 표준 JPA 활용 2 정리 📌 김영한님의 강의, 스프링 부트와 JPA 활용 1에 이어 2를 수강하며 들은 내용을 추가로 정리하려고 한다! 실제로 코드를 작성한 내용들은 활용 1 코드에 이어 작성하였고, 누군가 이 글을 볼 때 선행으로 보면 좋을 것 같아 첨부한다. https://seung-seok.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EC%99%80-JPA-%ED%99%9C%EC%9A%A9-1-%EC%A0%95%EB%A6%AC [스프링 부트와 JPA 활용 1] 정리 [스프링 부트와 JPA 활용 1] 정리 📌 김영한님의 강의, 스프링 부트와 JPA 활용 1을 수강하며 들은 내용을 정리하려고 한다. 코드 위주의 설명이..
[스프링 부트와 JPA 활용 2] 정리자바 ORM 표준 JPA 활용 2 정리 📌 김영한님의 강의, 스프링 부트와 JPA 활용 1에 이어 2를 수강하며 들은 내용을 추가로 정리하려고 한다! 실제로 코드를 작성한 내용들은 활용 1 코드에 이어 작성하였고, 누군가 이 글을 볼 때 선행으로 보면 좋을 것 같아 첨부한다. https://seung-seok.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EC%99%80-JPA-%ED%99%9C%EC%9A%A9-1-%EC%A0%95%EB%A6%AC [스프링 부트와 JPA 활용 1] 정리 [스프링 부트와 JPA 활용 1] 정리 📌 김영한님의 강의, 스프링 부트와 JPA 활용 1을 수강하며 들은 내용을 정리하려고 한다. 코드 위주의 설명이..
2024.01.12 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 157339, 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 📌 난이도 : LEVEL 4 🧩 프로세스 📚 요구사항 1. 2022년 11월 1일부터 30일까지 대여가능한 2. 자동차의 종류가 세단 또는 SUV 3. 30일간 대여금액이 50만원 ~ 200만원인 4. 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬 ✅ 전체 코드 SELECT CRCR.CAR_ID, CRCR.CAR_TYPE, RO..
(MySQL) [프로그래머스] 157339번, 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 157339, 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 📌 난이도 : LEVEL 4 🧩 프로세스 📚 요구사항 1. 2022년 11월 1일부터 30일까지 대여가능한 2. 자동차의 종류가 세단 또는 SUV 3. 30일간 대여금액이 50만원 ~ 200만원인 4. 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬 ✅ 전체 코드 SELECT CRCR.CAR_ID, CRCR.CAR_TYPE, RO..
2023.12.15 -
WITH RECURSIVE 📌 프로그래머스 59413 번 문제를 풀다가 0시부터 23시까지의 모든 시간에 대한 COUNT 를 해야 하는 경우가 생겼다. 언어로 그걸 구현하는 것은 단순 for() 를 사용해서 처리하는 등의 다양한 방법이 있지만 SQL 에서는 어떠한 방법으로 구현을 해야 할 지 막막했다. UNION 으로 해결할 수는 있지만 예쁜 코드? 가 아닌 것 같아 다양한 풀이를 찾아보다 with recursive 라는 기능을 찾게 되었다. 추후에도 유용하게 사용할 수 있을 것 같아 정리하고 넘어가고자 이 글을 작성한다. 📚 WITH RECURSIVE MySQL에서 제공하는 WITH RECURSIVE 구문은 말 그대로 재귀함수처럼 동작한다. WITH RECURSIVE 생성할_뷰_이름 AS ( 초기_SQ..
[MySQL] WITH RECURSIVEWITH RECURSIVE 📌 프로그래머스 59413 번 문제를 풀다가 0시부터 23시까지의 모든 시간에 대한 COUNT 를 해야 하는 경우가 생겼다. 언어로 그걸 구현하는 것은 단순 for() 를 사용해서 처리하는 등의 다양한 방법이 있지만 SQL 에서는 어떠한 방법으로 구현을 해야 할 지 막막했다. UNION 으로 해결할 수는 있지만 예쁜 코드? 가 아닌 것 같아 다양한 풀이를 찾아보다 with recursive 라는 기능을 찾게 되었다. 추후에도 유용하게 사용할 수 있을 것 같아 정리하고 넘어가고자 이 글을 작성한다. 📚 WITH RECURSIVE MySQL에서 제공하는 WITH RECURSIVE 구문은 말 그대로 재귀함수처럼 동작한다. WITH RECURSIVE 생성할_뷰_이름 AS ( 초기_SQ..
2023.12.07 -
Redis란 ? 선착순 이벤트를 진행하는데 선착순의 기준을 무엇으로 잡을 것이냐 라는 질문을 받았다. 이러한 이벤트를 진행할 때 당연히 의도한 무언가가 생성된 시간을 기준으로 하면 되지 않냐는 대답에 시간까지 동일하고, 그 과정에서 트랜잭션 처리는 어떻게 할 것이냐는 질문이 돌아왔을 때 아무 대답도 하지 못했다. 알아보니 이러한 시스템 설계엔 Redis 의 Sorted Set 자료구조를 사용하여 차례대로 일정 범위만큼 처리를 한다고 한다. 추후에 Redis 를 활용한 선착순 서비스를 생성해보고 싶은 욕심에 Redis 에 대해 정리해보려고 한다.Redis란?Redis ( Remote Dictionary Server) 는 메모리 기반의 "키-값" 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저..
[Database] Redis란 ?Redis란 ? 선착순 이벤트를 진행하는데 선착순의 기준을 무엇으로 잡을 것이냐 라는 질문을 받았다. 이러한 이벤트를 진행할 때 당연히 의도한 무언가가 생성된 시간을 기준으로 하면 되지 않냐는 대답에 시간까지 동일하고, 그 과정에서 트랜잭션 처리는 어떻게 할 것이냐는 질문이 돌아왔을 때 아무 대답도 하지 못했다. 알아보니 이러한 시스템 설계엔 Redis 의 Sorted Set 자료구조를 사용하여 차례대로 일정 범위만큼 처리를 한다고 한다. 추후에 Redis 를 활용한 선착순 서비스를 생성해보고 싶은 욕심에 Redis 에 대해 정리해보려고 한다.Redis란?Redis ( Remote Dictionary Server) 는 메모리 기반의 "키-값" 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저..
2023.12.06 -
자바 ORM 표준 JPA 기본편 정리 2 📌 프록시란? JPA를 사용할 때의 많은 장점 중 하나로, 그래프를 통해 연관관계를 탐색할 수 있다는 것을 꼽을 수 있다. 하지만 엔티티들은 데이터베이스에 저장되어 있기 대문에 한 객체 조회 시 연관되어 있는 엔티티들을 모두 조회하는 것 보다는 필요한 연관관계만 조회해 오는 것이 효과적이다. 이런 상황을 위해 JPA 는 지연 로딩이라는 방식을 지원하는데 그 중에서도 우리가 일반적으로 가장 많이 사용하는 JPA 구현체인 하이버네이트 (Hibernate) 는 프록시 객체를 통해 지연 로딩을 구현하고 있다. 프록시는 '대신하다'라는 의미를 가지고 있다. 동작을 대신해주는 가짜 객체의 개념이라고 생각하면 편하다. 즉, 프록시 클래스는 실제 클래스를 상속 받아서 만들어지며..
자바 ORM 표준 JPA 기본편 정리 [2]자바 ORM 표준 JPA 기본편 정리 2 📌 프록시란? JPA를 사용할 때의 많은 장점 중 하나로, 그래프를 통해 연관관계를 탐색할 수 있다는 것을 꼽을 수 있다. 하지만 엔티티들은 데이터베이스에 저장되어 있기 대문에 한 객체 조회 시 연관되어 있는 엔티티들을 모두 조회하는 것 보다는 필요한 연관관계만 조회해 오는 것이 효과적이다. 이런 상황을 위해 JPA 는 지연 로딩이라는 방식을 지원하는데 그 중에서도 우리가 일반적으로 가장 많이 사용하는 JPA 구현체인 하이버네이트 (Hibernate) 는 프록시 객체를 통해 지연 로딩을 구현하고 있다. 프록시는 '대신하다'라는 의미를 가지고 있다. 동작을 대신해주는 가짜 객체의 개념이라고 생각하면 편하다. 즉, 프록시 클래스는 실제 클래스를 상속 받아서 만들어지며..
2023.12.04 -
https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net 4179, 불! 📌 난이도 : Gold 4 📌 알고리즘 : DFS & BFS 📌 자료구조 : Queue 간만에 코테를 준비하다보니 많이 해맸었다. DFS & BFS 와 Queue 를 사용하여 문제를 해결했다. 🧩 프로세스 📚 초기화 및 선언 : 불과 진수의 이동에 대한 정보를 가져야 한다. 해당 좌표까지 걸리는 시간을 담을 distF, distJ 와 좌표들을 담을 Queue 2개..
(JAVA) [BOJ]백준 4179번, 불https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net 4179, 불! 📌 난이도 : Gold 4 📌 알고리즘 : DFS & BFS 📌 자료구조 : Queue 간만에 코테를 준비하다보니 많이 해맸었다. DFS & BFS 와 Queue 를 사용하여 문제를 해결했다. 🧩 프로세스 📚 초기화 및 선언 : 불과 진수의 이동에 대한 정보를 가져야 한다. 해당 좌표까지 걸리는 시간을 담을 distF, distJ 와 좌표들을 담을 Queue 2개..
2023.11.24