본문 바로가기

분류 전체보기83

DISTINCT와 ORDER BY를 같이 사용할 경우 정렬이 제대로 되지 않는 현상 해결 책을 기반으로 스터디를 만드는 웹 애플리케이션을 만드는 프로젝트 진행하던 중 최근에 스터디가 생성된 책을 조회하는 쿼리를 짜게 되었습니다. (아래는 해당 프로젝트 깃허브입니다.) https://github.com/prgrms-web-devcourse/Team-Books-CheckMoi-BE GitHub - prgrms-web-devcourse/Team-Books-CheckMoi-BE: 도서 기반 스터디 관리 플랫폼 - CheckMoi :book: 도서 기반 스터디 관리 플랫폼 - CheckMoi. Contribute to prgrms-web-devcourse/Team-Books-CheckMoi-BE development by creating an account on GitHub. github.com 현재.. 2022. 8. 30.
데이터베이스 첫걸음 정리 - 8장. 패턴 매칭에의한 검색 “=” 연산자로 검색하는 경우 데이터의 값이 완전히 동일한지를 비교하게 됩니다. 하지만 특정 문자나 문자열이 포함되어 있는지를 검색하고 싶은 경우도 많을 것 입니다. 이런 경우 LIKE를 사용하여 패턴 매칭으로 검색할 수 있습니다. LIKE로 패턴 매칭하기 LIKE를 사용하면 열 값이 부분적으로 일치하는 경우에도 참이 됩니다. 열 LIKE 패턴 LIKE는 이항 연산자 처럼 항목을 지정합니다. 왼쪽에는 매칭 대상을 지정하고 오른쪽에는 패턴을 문자열로 지정합니다. 단, 수치형 상수는 지정할 수 없으며 패턴을 정의할 때 다음과 같은 메타문자를 사용할 수 있습니다. % _ “와일드 카드"라고 불리는 메타문자는 패턴 매칭시 임의의 문자 또는 문자열에 매치하는 부분을 지정하기 위해 쓰이는 특수 문자입니다. 퍼센트(.. 2022. 8. 29.
IoC와 DI, 그리고 의존성 주입을 위한 방법들 설명에 앞서 고객관련 서비스를 만든다고 가정해봅시다. 고객관련 서비스가 제공되는 CustomerService가 존재하고 데이터의 저장, 수정, 조회, 삭제를 수행하는 CustomerRepository라는 객체가 존재한다고 가정해봅시다. CustomerRepository는 저장 방식에 따라 동작이 다를수 있어서 CustomerRepository라는 인터페이스를 만들고 이를 구현하는 MemoryCustomerRepository(인-메모리 방식), JdbcCustomerRepository(DB 저장, Jdbc 사용)로 나눴다고 가정해봅시다. 서비스의 경우 저장된 고객정보를 토대로 기능이 수행되기 때문에 CustomerRepository가 필요한 상태라고 가정해봅시다. 현재 상황을 그림으로 요약해보면 다음과 같.. 2022. 8. 29.
데이터베이스 첫걸음 정리 - 7장. 조건 조합하기 SQL은 조건들을 여러개 조합하여 좀 더 세밀한 검색할 수 있는 방법을 지원합니다. SELECT 명령을 사용하여 검색할때 하나의 조건식만으로는 필요한 데이터만 검색하기 힘들 수 있습니다. 이를 위해 조건식을 조합해서 사용할 수 있는데 복수의 조건을 WHERE 구로 지정할 수 있습니다. 조합할때는 AND, OR, NOT의 3가지 방법을 사용할 수 있습니다. 조건식1 AND 조건식2 조건식1 OR 조건식2 NOT 조건식 AND AND 연산자는 좌우의 식이 모두 참일 경우에만 참을 반환합니다. 즉, 모든 조건을 만족할 경우 참이됩니다. 조건식1 AND 조건식2 다음은 AND 연산 예시입니다. SELECT * FROM Customers Where Country='UK' AND City='London'; AND .. 2022. 8. 28.
운영체제와 IO / Interrupt 운영체제란? 운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어입니다. 운영체제를 사용하는 이유는 하드웨어와 응용 프로그램 사이의 중재자 역할을 해서 사용자가 응용 프로그램을 사용할 수 있도록 도와줍니다. 운영체제의 역할 운영체제의 역할은 다음과 같습니다. 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리합니다. 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공합니다. 사용자와 시스템간의 편리한 인터페이스를 제공합니다. 시스템의 각종 하드웨어와 네트워크를 관리, 제어합니다. 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공합니다. 시스템의 오류를 검사하고 복구합니다. 자원 보호 기능을 제공합니다. 입 출력에 대한 보조 기능을 제공합니다. 가상 계산기 능력을 제공합니다. 운영체.. 2022. 8. 28.
jenkins를 사용하여 배포중 EC2 인스턴스가 터지는 증상 발생 해결법 CI/CD 파이프라인을 구축한후 EC2 인스턴스에 배포 후 프로젝트를 진행중에 권한이 있는데도 불구하고 계속 다음과 같이 접근거부가 되었습니다. 인스턴스를 재부팅하면 해결되었지만 배포할때마다 계속 서버가 내려간다면 서비스가 힘들어지므로 원인을 찾아보았습니다. 그래서 배포 중에 인스턴스 상태를 모니터링으로 확인해보았는데 배포가 진행될때 CPU 사용률이 99.9%에 도달하는 것을 확인할 수 있었습니다. 왜 이렇게 많이 트래픽이 발생했는지 확인해보았는데 현재 인프라 구성이 다음과 같이 되어있었는데 MySQL 컨테이너가 너무 많은 리소스를 차지하고 있었습니다. 인스턴스는 현재 메모리로 부족해서 스왑메모리로 처리하려고 했으나 스왑 메모리를 처리하는 kswapd0 프로세스가 너무 많은 CPU를 사용하여 인스턴스가 .. 2022. 8. 27.
데이터베이스 첫걸음 정리 - 6장. 검색 조건 지정하기 이번에는 검색에 조건을 주어 특정 데이터만 검색하는 방법에 대해 알아보겠습니다. 데이터 검색에는 열을 지정하는 방법과 행을 지정하는 방법이 있습니다. SELECT 열1, 열2 FROM 테이블명 WHERE 조건식 검색조건을 지정해야 하는 이유 일반적으로 데이터베이스에는 많은 데이터를 가지고 있습니다. 하지만 우리가 화면에 표시해서 확인할 수 있는 데이터의 양은 한정되어 있기 때문에 특정 조건을 만족하는 경우를 보고 싶은 경우 “검색”을 통해 이를 해결할 수 있습니다. SQL에서 행을 기준으로는 WHERE 절을 사용하여 검색하고 열을 기준으로는 SELECT 구를 사용하여 검색합니다. SELECT 구에서 열 지정하기 특정 열만 검색하기 위해서는 다음 명령을 사용하여 검색할 수 있습니다. SELECT 열1, 열.. 2022. 8. 26.
데이터베이스 첫걸음 정리 - 5장. 테이블 구조 참조하기 테이블은 한개이상의 열로 구성됩니다. SELECT를 사용할때 열에 대한 정보가 미리 있다면 SELECT 시 원하는 열만 데이터를 가져올 수 있습니다. 만약 테이블이 구조를 먼저 알고 싶다면 DESC 명령어를 통해 이를 알 수 있습니다. DESC 다음과 같이 명령어를 작성하면 테이블의 구조를 확인할 수 있습니다. DESC 표시된 내용은 다음과 같습니다. Field → 열 이름 Type → 자료형 여기서 괄호안의 숫자는 크기를 의미합니다 예를들어 varchar(50)인 author는 50자 이상의 문자가 들어갈 수 없습니다. Null → null 값 허용 여부 Key → 해당 열이 키로 지정되어 있는지를 나타냅니다. Default → 해당 열을 생략했을 때 기본으로 가지는 값 Extra → 해당 열에 지정된.. 2022. 8. 25.