전체 글 200

1973년의 핀볼

한없는 허무 속 불빛 같은 하루키 문학 권택영(문학평론가) 주인공 '나'는 시간이 흘러도 변치 않는 작가 자신 1973년에 당신은 무엇을 하셨나요? 꼭 그해가 아닐지라도 우리는 지난날을 되돌아보았을 때 전환점이 되는 지점을 발견합니다. 실패를 딛고 다시 일어서던 해, 깨달음을 얻고 다시 태어나던 해 말입니다. 그런데 바로 그 새로운 시작은 절망의 끝이 아니었던가요? 입구가 곧 출구가 아니었느냐고 하루키는 묻습니다. 언젠가 하루키는, 전집을 묶으면서 단편들을 손질했지만 초기에 썼던 이 작품만은 손대지 않았다고 말했다. 그것이 '당시의 나였고 결국은 시간이 흘러도 지금의 나'이기 때문이라고. 그렇다면 무엇이 변치 않는 자신의 모습일까? 잠깐 낮잠이 든 사이에도 나뭇잎이 시퍼렇게 커버리는데 변치 않는 것이 과..

Book 2024.04.08

[docker] mariadb, 한글 깨짐, 서버 시간대

docker run --name mariadb -d -p 5306:3306 -e MYSQL_ROOT_PASSWORD=1234 mariadb  https://esther99.tistory.com/11      참고https://upcurvewave.tistory.com/344 docker compose를 이용한 mariadb build시 트러블 슈팅 (3306이 아닌 다른 포트 사용시)문제상황 : 도커 컴포즈를 이용해 mariaDb를 생성하고 jdbc 혹은 datagrip을 이용해 접속하려고 했을 때 아래와 같은 에러가 발생했다. Caused by: java.sql.SQLNonTransientConnectionException: Could not connect to address=upcurvewave.ti..

Mac 2024.04.05

정의란 무엇인가

그는 이성적 능력이 우리 능력의 전부가 아니라는 점을 분명히 인정한다. 우리는 쾌락과 고통을 느낄 능력도 있다. 그는 우리가 이상적 동물일 뿐 아니라 지각력 있는 동물이라고 말한다. 칸트가 말하는 "지각력"이란 감각과 느낌에 반응하는 능력이다. 따라서 벤담도 옳지만, 절반만 옳을 뿐이다. 벤담은 우리가 쾌락을 좋아하고 고통을 싫어한다는 사실을 알았고, 이는 옳은 이야기다. 그러나 쾌락과 고통이 "우리의 통치권자"라는 주장은 옳지 않다. 칸트는 이성이야말로, 적어도 때로는, 통치권을 행사할 수 있다고 주장한다. 이성이 우리 의지를 통치할 때, 우리는 쾌락을 추구하고 고통을 피하려는 욕망에 내몰리지 않는다. 이성적으로 사고하는 능력은 자유롭게 행동하는 능력과 밀접하게 연관된다. 이 두 가지 능력이 합쳐져 우..

Book 2024.04.03

S)DB_08_JOIN

두 개의 팀이 서로 다른 작업을 수행하고 있다. 이들은 서로 다른 작업을 수행하기 위해 독립적으로 작업하고 있지만 때로는 서로의 작업에 필요한 정보를 공유하거나, 그들의 일부 구성원이 함께 작업할 필요가 있는 경우도 있다. 조인은 이들 팀의 구성원이 필요한 정보를 서로 공유하는 것과 유사하다. 예를 들어, 한 팀은 책의 목록을 가지고 있고 다른 팀은 각 저자의 정보를 가지고 있다고 가정해보자. 이 두 팀은 각각 독립적으로 일하고 있지만, 책의 목록과 각 저자의 정보가 필요한 경우가 있다. 이때 조인은 책의 목록과 각 저자의 정보를 결합하여 필요한 정보를 얻을 수 있게 해 준다. WHY? 데이터베이스의 정규화된 데이터 모델은 데이터를 분할하여 중복을 피한다. (정규화) 조인은 데이터베이스에서 설정된 여러 ..

CS 2024.04.02

S)DB_08_DBCP

커넥션 풀은 기존에 매번 쿼리를 요청하고 응답을 받을 때마다 데이터베이스와의 연결을 열고 닫아야 했던 작업을 효율적으로 관리하기 위해 도입된 개념이다. 커넥션 풀은 미리 일정 수의 연결을 생성하여 풀에 보관해두고, 요청이 들어올 때마다 풀에서 연결을 빌려주고, 작업이 완료되면 다시 풀에 반납하는 방식으로 연결을 관리합니다. 이를 통해 매번 연결을 생성하고 해제하는 오버헤드를 줄이고, 데이터베이스 서버의 부하를 관리할 수 있습니다. 따라서 커넥션 풀을 사용함으로써 연결 관리에 필요한 비용을 줄이고, 시스템의 성능과 효율성을 향상시킬 수 있다. 백엔드 서버 DB조회할 일 발생! 쿼리 요청 쿼리 결과 반환 (추가 작업) (클라이언트) 요청 반환 이 과정은 네트워크 통신으로 이루어진다 ! 그리고 일반적으로 이..

CS 2024.04.02

S)DB_07_B tree, B+tree

Binary tree 각 노드가 최대 두 개의 자식을 가질 수 있는 트리 구조다. 평균적인 시간 복잡도로 O(logN)을 갖지만 한쪽 방향으로만 노드들이 쏠려 균형이 맞지 않은 경우 최악의 시간복잡도로 O(N)을 갖게 된다. 노드 하나의 자식 노드로 최대 두 개의 노드만 가질 수 있으므로 데이터가 증가할 수록 깊이가 커지는 속도가 빠르다. B tree & B+tree 데이터를 효율적으로 저장하고 탐색하기 위한 트리 기반의 자료구조 Balanced, 트리의 노드가 한쪽으로만 쏠리지 않도록 노드 삽입 삭제 시 특정 규칙에 맞게 재정렬해 전체적으로 균형을 유지한다. □ 삽입 과정 : 빈 트리에 데이터 삽입할 때는 새로운 노드 생성하고, 가득 찬 노드 경우 분할 통해 새로운 노드 생성한다. □ 삭제 과정 : ..

CS 2024.03.30

S)DB_07_인덱스

도서관을 떠올려보자 도서관엔 수많은 책들이 잘 정리되어 있다. 나는 요시나가 요시마사가 쓴 "괴델 불완전성 정리"라는 책을 찾아 읽고 싶다. 1. 인덱스의 필요성 도서관은 책으로 가득 차 있다. 만약 책의 위치를 나타내는 색인(인덱스)가 없다면, 우리는 원하는 책을 찾기 위해 모든 책을 차례로 살펴봐야 한다. "괴델 불완전성 정리"를 찾기도 전에 도서관은 문을 닫고 말 것이다. 2. 인덱스의 역할 그럼 각 책의 위치를 알려주는 색인을 제공한다고 해보자. 이 색인은 각 제목의 위치를 정리해 놓은 것이다. 우리가 원하는 책을 찾을 때, 이제 색인을 참조하여 어느 섹션에 가야 할지 알 수 있다. 이렇게 색인을 통해 우리는 시간을 절약하고 효율적으로 책을 찾을 수 있다. 3. 인덱스 설정 기준 이렇게 편리한 색..

CS 2024.03.30

S)DB_06_트리거

트리거는 데이터베이스에서 특정 이벤트 발생 시 자동으로 실행되는 작업 데이터베이스에서 특정한 조건이나 이벤트가 발생할 때 자동으로 실행되는 일련의 sql 명령문의 모음이다. 주로 데이터 무결성 유지, 비즈니스 규칙 적용, 데이터 변화에 대한 로깅 등을 위해 사용된다. 트리거는 특정 테이블에 INSERT, UPDATE, DELETE 등의 데이터 조작 작업이 발생할 때 실행될 수 있다. - 주문 취소될 때 재고량 갱신하는 트리거 - 사용자가 새로운 게시물 작성할 때 알림을 전송하는 트리거 트리거의 속성 BEFORE/AFTER : 트리거 실행 시점 지정 (해당 작업 실행 전, 해당 작업 실행 후) INSTEAD OF : 대상 작업 대신 트리거 실행 WHEN : 트리거 실행 조건 지정 더보기 BEFORE/AFT..

CS 2024.03.27

S)DB_06_저장 프로시저

저장 프로시저 데이터베이스에서 실행 가능한 SQL 코드의 집합, 재사용 가능한 로직을 캡슐화하여 관리 반복적으로 호출되는 작업이나 복잡한 로직을 수행할 때 성능 및 유지보수 측면에서 이점 제공 저장 프로시저(Stored Procedure, SP)는 데이터베이스 내에 저장된 일련의 SQL 쿼리를 실행하는 프로그래밍 루틴이다. 하나의 단위로 실행된다. 저장 프로시저는 데이터베이스 서버에 미리 컴파일되어 있기 때문에 실행시점에 매번 컴파일할 필요가 없어서 반복적인 쿼리 실행에 효율적이다. 저장 프로시저의 특징 1. 로직의 모듈화 : 특정 작업을 수행하는 SQL쿼리들을 하나의 모듈로 묶어 로직을 모듈화한다. 2. 재사용성 : 동일한 로직이 여러번 필요한 경우, 저장 프로시저를 호출해 사용함으로써 코드의 중복을 ..

CS 2024.03.27

docker colima Oralcle

정답은 https://shanepark.tistory.com/400 [MacOS] M1 맥북 도커로 ORACLE DB 실행하기 Intro M1 맥북을 처음 구입 한 이후로 약 1년 반동안, 오라클 데이터베이스를 띄우기 위해 참 많은 노력을 했었습니다. 원래부터 Oracle이 MacOS를 정식 지원을 하지는 않았지만, 그나마 이전의 맥북에 shanepark.tistory.com 과 https://king-ja.tistory.com/107 M1 맥북에서 Docker로 oracle DB 실행하는 방법 1. 기존 설치 방법으로는 오류 뜸 (colima 사용 ❌) Apple Silicon에서는 아키텍처가 바뀌어서 orcale 데이터베이스를 띄울 수 없었습니다. 관련 정보를 찾아가며 시도 해봤지만 sqlplus 접..

Mac 2024.03.27