전체 글120 [Algorithm] DFS / BFS 알고리즘 공부를 하다 보면 DFS와 BFS라는 단어를 자주 접하게 되는데, 이는 트리 구조(또는 그래프)의 탐색과 관련된 알고리즘이다. 1. 깊이 우선 탐색 : DFS (Depth-First Search) 깊이 우선 탐색은 미로를 탐색할 때 벽을 따라 한 방향으로 끝까지 간 후 더 갈 수 없을 때 분기점으로 돌아와서 다른 방향으로 다시 탐색을 진행하는 방법으로 볼 수 있다. 모든 노드의 방문을 확인하고자 할 때 해당 탐색 방식을 채택하며, 기본적으로 BFS 방식보다 조금 더 느릴 수 있다. (Back-Tracking 과정으로 분기점 방문을 위해 노드를 거슬러 올라가는 과정이 존재) * DFS 특징 : 재귀적으로 호출하는 순환 알고리즘의 형태이다. 전위 순회(Pre-Order Traversals)를 포함한.. 2023. 4. 19. [Docker] 컨테이너의 Resource 사용 확인 도커에서는 다양한 기능을 제공하고 있고, 각 컨테이너가 사용하고 있는 컴퓨터 자원을 확인하는 명령어 또한 존재한다. $ docker stats 위 명령어를 통해 Running 중인 컨테이너의 컴퓨터 자원의 사용량을 알 수 있다. 컨테이너의 CPU 또는 메모리를 과도하게 점유로 인하여 API 제공에 장애가 생길 수 있기 때문에, 서버에서 갑작스러운 속도저하 발생 시 해당 명령어를 통해 체크해 볼 수 있다. 명령어 입력 시 아래의 사진처럼 출력이 되며 실시간 사용량을 볼 수 있다. 2023. 4. 17. [Database] N + 1 1. N + 1 Database에서 Query 1번으로 N건의 자료를 가져오고 각 건에 대하여 데이터를 조회하려고 할 때, 각 건마다 Query가 추가로 발생하는 현상 이는, 주로 Lazy Loading의 특성을 가진 ORM에서 많이 발생하고 아래 예시를 통해 보게 되면, * Lazy Loading : ORM의 객체를 통해 데이터가 처리되는 순간 Query가 발생 Ex : 과일 테이블에서 가격이 1만원 미만인 과일의 이름들의 배열을 얻고자 할 때, SQL문을 이용하면 Query 1회로 데이터를 얻을 수 있다. 하지만 ORM을 통하면 Code에 for문이 필요하고, 그로 인하여 N + 1 현상이 발생한다. 이는 DB에 불필요한 Query를 많이 발생시켜, 성능을 저하시키는 큰 요인이 된다. 하지만 대부분의.. 2023. 4. 12. [Database] 이상 / 정규화 / 반정규화 DB를 이용할 때, 특정 조건을 충족하면 여러 문제를 야기할 수 있다. 이를 이상이라고 하며, 아래 내용을 통해 그 종류를 알 수 있다. 1. 이상 (Anomaly) 이상이란 DB에서 중복된 데이터 구조로 인하여 예기치 못하게 발생하게 되는 현상이다. 이상의 종류에는 3가지가 있다. 삽입 이상 : 데이터를 DB에 Insert 할 때, 의도하지 않은 값들이 같이 입력이 되는 현상 - Ex : 특정 속성의 값만 추가하고자 할 때, 다른 속성 값이 비게 되며 부분이 Null 값으로 입력되거나 데이터의 삽입이 실패하는 현상을 볼 수 있다. 삭제 이상 : 하나의 튜플을 삭제할 때, 의도하지 않은 값들과 함께 삭제되는 현상 - Ex : 특정 속성 값을 기준으로 튜플을 삭제하면 다른 속성들과 함께 삭제가 돼버리는 현.. 2023. 4. 11. [ELK] Logstash - Postgresql 연결 실패 (Docker Network) 도커를 이용하여 PostgreSQL을 Build 후 해당 DB의 데이터를Logstash를 이용하여 Elasticsearch와 연동하는 과정에서 생긴 에러이다. [ERROR][logstash.inputs.jdbc ][main][01b8fcd4a63cf0b14c82113572d5c31371649609a57c0007cc38eb353a2e434e] Unable to connect to database. Tried 1 times {:error_message=>"Java::OrgPostgresqlUtil::PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the pos.. 2023. 2. 24. [Docker] docker 명령어 시 Linux(Ubuntu) 권한 문제 해결 # docker 명령어 실행 $ docker compose up Got permission denied while trying to connect to the Dockerdaemonsocket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied EC2 상에서 docker를 설치 후 권한이 없어서 실행이 불가할 때 아래의 방법을 통해 해결을 할 수 있다. 1. 그룹 확인 : $ groups - 그룹 확인 후 docker가 없을 때 그룹에 추가 $ sudo groupadd docker 2. .. 2023. 2. 21. 이전 1 ··· 13 14 15 16 17 18 19 20 다음