본문 바로가기
728x90

분류 전체보기148

[Docker] docker exec [container] bash -c [command] docker exec [컨테이너이름] /bin/bash -c "실행할 스크립트 명령어"  코드를 분석하다가 위의 명령어를 실행하는 코드를 봤다.대충은 어떤 동작을 하는지 알지만 정확하게 몰라서 이번 기회에 정리해본다.1️⃣ docker execExecute a command in a running container실행 중인 컨테이너에서 명령어를 실행한다.-i , --interactive: STDIN(표준입출력) 유지-t, --tty : 의사 터미널 할당-it : 컨테이너 내에서 셀과 같은 대화형 인터페이스를 제공받을 수 있다.docker exec -it [container_id] /bin/bash실행된 도커 컨테이너에 /bin/bash 쉘을 사용하기 위해 이 명령어를 사용했다.2️⃣ 쉘 옵션-c 옵션 :.. 2024. 7. 16.
[CSS] 다중 클래스 접근 및 Font-weight : Bold 설정 ※ 디자인 변경 작업 수행 중 필요한 내용 정리 ※1. 다중 클래스.a, .b, .c{}쉼표를 사용한 연결각각의 항목을 or로 적용나열한 모든 클래스 혹은 id, 태그에 적용되고, 각 클래스는 따로 사용.a .b .c{}공백을 사용한 연결뒤에나온 선택자가 하위 개체로 지정즉, A요소 내부의 B요소 내부에 있는 C요소에만 적용.a.b.c{}공백없이 연결class="a b c"처럼 모든 속성을 한번에 만족하는 요소에만 적용[참고]https://padahkim.tistory.com/34 CSS 다중선택자와 클래스이름여러개1. 여러 요소를 동시에 선택하여 적용. .a, .b, .c{} 이런 식으로 쉼표가 있을 때는 각각의 항목을 or로 적용한다. 즉 나열한 모든 클래스 혹은 id, 태그에 적용되고, 각 클래스는.. 2024. 5. 16.
[Kafka] Zookeeper 기본 개념 정리 https://zookeeper.apache.org/ Apache ZooKeeperzookeeper.apache.org Zookeeper?분산 코디네이션 서비스를 제공하는 오픈소스 프로젝트직접 어플리케이션 작업을 조율하는 것을 쉽게 개발할 수 있도록 도와준다.일반적으로 N개의 주키퍼 서버의 집합인 Ensemble로 구성leader-follower 구조 : Leader가 Follwer에게 동기화를 위한 명령을 내린다.일반적으로 Server로 Zookeeper, Client로 Kafka로 구성분산 코디네이션 서비스?분산 시스템에서 시스템 간의 정보 공유, 상태 체크, 서버들 간의 동기화를 위한 락 등을 처리해주는 서비스→ 여러 서버 간의 동기화를 담당하여 클러스터 내의 서비스들이 안정적으로 동작할 수 있도록.. 2024. 5. 9.
[Kafka] 카프카 기본 용어 정리 Topic데이터가 들어갈 수 있는 공간테이블, 폴더와 유사한 개념Partition어떤 토픽에 대해서 producer/consumer가 병렬처리방식으로 분산저장되는 단위하나의 토픽에 여러개의 파티션 존재0번 인덱스부터 시작큐와 유사하게 동작Producer : 데이터를 쌓는다.Consumer :오래된 순서대로 가져감offset : 파티션 속 위치단, 컨슈머가 읽어도 데이터는 삭제되지 않는다.파티션 속에 데이터는 지정된 시간과 용량만큼 사용 후 삭제된다.늘릴수는 있지만 줄일 수는 없다.늘릴수록 컨슈머 분산가능파티션의 개수 >= 컨슈머의 개수replication (복제)높은 가용성(High Availibility)을 얻기 위해 각각의 partition을 각기 다른 브로커에 복제하는 역할서버에 장애가 생겼을 때 .. 2024. 5. 8.
[MySQL] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) 연결 오류 CentOS 8 리눅스 환경에서 MySQL을 실행하려고 하니 오류가 발생했다.아래와 같은 문구로 MySQL 서버에 연결할 수 없는 오류였다.ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)▶ 상황오전에 분명히 확인한 유저와 비밀번호를 가지고 오후에 접속을 시도하니 서버 연결 불가능▶ 해결방법systemctl start mysqld위의 명령어를 입력해 MySQL 서버를 실행시켜 주었다.[참고] [MYSQL] 일반적인 오류를 해결하는 유용한 정보들[참고 사이트] - MySQL 일반적인 오류를 해결하는 유용한 정보들 - [MySQL || MariaDB] System...bl.. 2024. 5. 8.
[Java] PreparedStatement 공부하기 회사 과제를 진행하며 pstmt를 사용해 좀 더 효율적인 insert 작업을 수행해야 했다.다른 사람의 코드를 참고하면서 어느 정도는 알았지만 활용하기 위해 기초를 정리해본다.1. 공식문서PreparedStatement 공식문서 PreparedStatement (Java Platform SE 8 )Sets the designated parameter to SQL NULL. This version of the method setNull should be used for user-defined types and REF type parameters. Examples of user-defined types include: STRUCT, DISTINCT, JAVA_OBJECT, and named array typ.. 2024. 4. 28.
[BOJ] 2230번 - 수 고르기 (Java) 🛠️ 문제 🛠️ 🗒️ 설명 🗒️ 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램 → 차이를 비교할 두 수가 같은 수일 수도 있고 조건을 만족하는 최솟값을 구해야 한다. 두 수의 차이를 구해야하는데 입력된 수열이 정렬되어 있지 않으면 모든 원소끼리 비교해야 한다. 예를 들어 5개의 원소가 있으면 하나의 원소와 나머지 4개의 원소를 모두 비교해보아야 한다. 총 반복되는 횟수는 4 X 3 X 2 X 1 = 24 이다. 하지만 이 문제에서 수열의 길이는 최대 100,000까지 가능하기에 시간초과가 뜬다. 그렇다면 시간을 줄이기 위해 원소를 비교하는 반복 횟수를 줄여야한다. 먼저, 수열을 정렬한다. 그러면 아래의 그림과 같이 두 수의 차이가 어떻게 변화할지 .. 2024. 3. 22.
[LeetCode] 155. Min Stack (Python) 1. 문제 문제 링크 : 155. Min Stack 문제 태크 : Stack 2. 문제 설명 Implement the MinStack class → MinStack의 클래스를 구현해야한다. MinStack() initializes the stack object. → 스택으로 사용할 객체 생성하기 → Python에서는 List를 사용하여 스택처럼 작업 수행 void push(int val) pushes the element val onto the stack. → 스택에 값을 넣기 void pop() removes the element on the top of the stack. → 가장 최근에 넣었던 값 제거하기 → 스택에 1개 이상의 값이 존재할 경우에만 가능 int top() gets the top e.. 2024. 3. 13.
[BOJ] 2529번 - 부등호 (Java) 🛠️ 문제 🛠️ 🗒️ 설명 🗒️ 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족하는 수열을 구해야한다. → 이 수열을 구하기 위해 백트래킹 방식을 사용한다. 각 부등호의 앞뒤에 들어가는 숫자는 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }중에서 선택해야 하며 선택된 숫자는 모두 달라야 한다. → 백트래킹을 할 때 사용할 배열은 위와 같고 중복되지 않는 값들로 이뤄지도록 visited 배열을 사용한다. 이제 여기서 모든 부등호 관계를 만족하는 수열 중 가장 큰 값과 가장 작은 값을 구해야한다. 이때 주의할 점은 첫 자리가 0인 경우도 정수에 포함해야한다. 즉, 0123과 같이 출력해야한다. 나는 이를 쉽게 다루기 위해 문자열로 답을 구하기로 했다. 그러나 최솟값.. 2024. 3. 11.
[BOJ] 13023번 - ABCDE (Java) 🛠️ 문제 🛠️ 🗒️ 설명 🗒️ 오늘은 다음과 같은 친구 관계를 가진 사람 A, B, C, D, E가 존재하는지 구해보려고 한다. - A는 B와 친구다. - B는 C와 친구다. - C는 D와 친구다. - D는 E와 친구다. 우선 여기서 알 수 있는 것은 N명 중 5명이 이와 같은 관계를 가지고 있으면 된다. 이러한 친구 관계를 구하기 위해서는 깊이 우선 탐색을 하여 구할 수 있다. 그래프의 깊이가 5이상일 경우 위와 같은 관계가 존재한다는 것을 알 수 있다. 단, 이는 판별만 하면 되기 때문에 관계를 발견하면 모든 탐색을 멈출 수 있도록 했다. 🍀 풀이 🍀 package Baekjoon; import java.io.*; import java.util.*; public class DFS13023 { sta.. 2024. 3. 1.
[Softeer] Lv3. 택배마스터 광우 (Java) 1. 문제 문제 링크 : Lv3. 택배마스터 광우 주제 : 완전탐색, 백트래킹 2. 풀이 과정 및 정리 이 문제에서는 레일을 어떤 순서로 돌아서 최소한의 무게로 일할 수 있는지 찾아야한다. 위의 그림과 같이 레일을 돌면서 바구니 무게를 초과하기 전까지는 무조건 1번으로 시행되어야 한다. 이는 딱히 규칙성이나 공식을 찾을 수 없다. 그래서 내가 선택한 방식은 완전탐색을 하여 레일의 순서를 모두 구했다. 이를 구하기 위해서 아래와 같이 백트래킹 방식으로 순서를 구했다. static void dfs(int count, int[] result) { if(count == n) { //순서가 정해졌을 경우 int w = getWeight(result); minWeight = Math.min(w, minWeight).. 2024. 2. 25.
[Softeer] Lv3. GINI야 도와줘 (Java) 1. 문제 문제 링크 : Lv3. GINI야 도와줘 주제 : BFS 2. 풀이 과정 및 정리 예전에 비슷한 문제를 풀었던 기억이 나서 또 비슷하게 풀었다. (문제 풀이 기록 - 3055번 탈출) https://soo-note.tistory.com/52 [TIL] Algorithm - 다익스트라 + 그래프 문제 풀이(BFS) 1. 다익스트라 알고리즘(Dijkstra algorithm) 모든 간선에 대한 가중치가 항상 0이상임을 가정하고 두 꼭짓점 간의 가장 짧을 경로를 찾는 알고리즘 간선 완화(Edge Relaxation) 시작 정점 s에서 다른 정점 v soo-note.tistory.com 저번에는 파이썬으로 풀었는데 이번에 자바로 풀어보았다. 이번에도 핵심은 비오는 시간을 구하고 이에 따른 이동방법을 .. 2024. 2. 22.
[Spring] Spring Boot JWT Tutorial - Entity 생성하기 인프런 - Spring Boot JWT Tutorial [지금 무료] Spring Boot JWT Tutorial 강의 - 인프런 Spring Boot, Spring Security, JWT를 이용한 튜토리얼을 통해 인증과 인가에 대한 기초 지식을 쉽고 빠르게 학습할 수 있습니다., [사진] 본 강의는 Spring Boot, Spring Security를 이용해서 JWT 인증과 인가를 쉽 www.inflearn.com ※ 위 강의를 수강하면서 진행한 실습 정리 ※ 1. application.properties 파일에 DB 정보 추가하기 나는 강의와 달리 MySQL을 사용하여 DB 설정이 다르다. 처음에는 실행해도 테이블이 생성이 되지 않아 다른 자료를 참고하다가 추가해주어야 하는 정보를 찾았다. (참고 .. 2024. 2. 21.
[Softeer] Lv3. 비밀메뉴2 (Java) 1. 문제 문제 링크 : Lv3. 비밀메뉴2 주제 : LCS, DP 2. 풀이 과정 및 정리 이 문제는 두 수열 사이에 공통적으로 포함된 연속된 수열의 최대 길이를 구해야 한다. 여기서 가장 먼저 생각난 것은 LCS 즉, 가장 긴 공통 부분 문자열이다. [LCS 문제 풀이 연습] https://soo-note.tistory.com/56 [TIL] 동적 프로그래밍 문제 풀이 1. DP 문제 풀이 1. 9084번 - 동전 import sys T = int(sys.stdin.readline()) for _ in range(T) : N = int(sys.stdin.readline()) coin = list(map(int, sys.stdin.readline().split())) M = int(sys.stdin.r.. 2024. 2. 20.
[BOJ] 2477번 - 참외밭 (Java) 🛠️ 문제 🛠️ 🗒️ 설명 🗒️ 참외밭은 ㄱ자 모양이거나 ㄱ자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형 밭의 경계(육각형의 변)는 모두 동서 방향이거나 남북 방향 → 밭의 모양은 항상 그림과 같은 육각형이다.(회전할 수 있다.) 그러므로 밭의 넓이는 [전체적인 사각형의 넓이 - 빠져야할 작은 사각형의 넓이] 이다. 우리는 가장 긴 가로의 길이와 세로의 길이, 빼야할 가로의 길이와 세로의 길이를 구해야한다. 1. 가장 긴 가로와 세로 구하기 입력받을 때 동쪽은 1, 서쪽은 2, 남쪽은 3, 북쪽은 4 이므로 1, 2일 경우 가로 확인, 3,4일 경우 세로 확인 2. 빼야할 가로와 세로 구하기 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 입력을 받는다... 2024. 2. 19.
[Softeer] Lv2. 지도 자동 구축 (Java) 1. 문제 문제 링크 : Lv2. 지도 자동 구축 주제 : Math 2. 풀이 과정 및 정리 내가 이 문제에서 핵심으로 잡은 것은 정사각형의 한 변에 포함되어 있는 점의 개수이다. 이 문제는 정사각형의 중앙에 점을 추가하여 작은 정사각형이 또 생겨난다. 그러므로 단계가 올라갈수록 한 변에 포함되어 있는 점의 개수가 증가한다. 위의 그림은 1단계에서 2단계로 올라갈 때 점의 개수 변화를 나타낸 그림이다. 이 그림을 통해 특징을 생각해보면 두 점 사이에 1개의 점이 추가된다. 즉, 한 변에 점 n개가 있을 경우 n-1개의 점이 추가된다. 모든 점의 개수는 한 변의 개수의 제곱이다. 즉, n의 제곱이다. 그러므로 나는 한 변의 점의 개수가 어떻게 변하는지에 집중했다. 1단계 → 2단계 기본 3개의 점이 존재한.. 2024. 2. 16.
[Spring] Docker로 띄운 MySQL JDBC로 연결하기 1. build.gradle 파일에서 의존성 추가하기 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'mysql:mysql-connector-java:8.0.23' 2. application.properties 설정 파일 경로 : src/main/resources/application.properties spring.datasource.url=jdbc:mysql://localhost:3306/board spring.datasource.username=user spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.. 2024. 2. 13.
[Docker] Docker-Compose로 MySQL 띄우기 ※ 간단한 게시판 프로젝트 진행하기 위한 데이터베이스 준비 ※ 1. docker-compose.yaml 파일 작성하기 version: '1' services: db: image: mysql:8.0 container_name: board-mysql restart: always ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: board MYSQL_USER: user MYSQL_PASSWORD: 123456 volumes: - ./db_data:/var/lib/mysql image 사용할 도커 이미지를 지정 MySQL 8.0 이미지를 사용한다. container_name 컨테이너의 이름을 설정 board-mysql 로 설정.. 2024. 2. 13.
728x90