본문 바로가기

분류 전체보기54

[MYSQL] RECURSIVE 재귀쿼리를 통해서 "입양 시각 구하기(2)" 해결하기 문제 : 아래 ANIMAL_OUTS 테이블 스키마를 바탕으로 시간대별 입양건수 구하기 결과 예시 : 1차 풀이 : 단순하게 그루핑하면 될줄 알고 풀이했으나 실패 SELECT EXTRACT(HOUR FROM DATETIME) as HOUR, COUNT(*) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR ORDER BY HOUR ; 2차 풀이 : 0~23 시간대 중에서 데이터가 없는 시간대는 제외되고 출력되므로 별도의 0~23까지의 임시테이블을 만들고 기존 테이블과 병합해야함을 깨달음 아래와 같이 RECURSIVE 를 통해서 문제해결. WITH의 경우에는 판다스에서 생각해본다면 df 를 변수에 저장하는것과 같음 WITH RECURSIVE HOURS AS ( SELECT 0 AS HO.. 2023. 2. 9.
자료 구조(Data Structure) 개념 및 종류 정리 소개 정의 및 중요성: 자료구조는 효율적으로 액세스, 수정 및 처리할 수 있도록 컴퓨터에서 데이터를 구성하고 저장하는 방법입니다. 자료구조는 알고리즘과 프로그램의 성능과 효율성에 상당한 영향을 미칠 수 있으므로 컴퓨터 프로그래밍에서 중요한 역할을 합니다. 특정 작업에 대한 자료구조의 선택은 프로그램의 속도, 메모리 사용량 및 전반적인 효율성에 큰 영향을 미칠 수 있습니다. 자료구조의 종류: 다양한 유형의 자료구조가 있으며 각각 고유한 강점과 약점이 있습니다. 가장 일반적인 자료구조에는 arrays, linked lists, stacks, queues, trees, and graphs, hash tables, bloom filters 등이 있습니다 시간복잡도와 공간복잡도: 데이터 구조를 선택할 때 데이터 .. 2023. 2. 8.
REST(Representational State Transfer)란 무엇인가? 1. 소개 REST(Representational State Transfer)는 웹 서비스 및 API를 구축하기 위한 아키텍처 스타일입니다. 2000년 Roy Fielding이 박사 학위 논문에서 처음 소개했으며 이후 API 구축에 가장 널리 사용되는 접근 방식 중 하나가 되었습니다. REST의 목적은 GET, POST, PUT 및 DELETE와 같은 표준 HTTP 메서드를 사용하여 웹을 통해 데이터와 기능에 액세스하고 조작할 수 있는 간단하고 유연한 방법을 제공하는 것입니다. RESTful API는 HTTP 요청 및 응답을 사용하여 데이터를 교환하며 웹 브라우저, 모바일 앱 및 서버 측 애플리케이션을 비롯한 다양한 클라이언트에서 사용할 수 있습니다. 단순하고 확장 가능하도록 설계되었으며 작업보다는 리소.. 2023. 2. 8.
API(Application Programming Interface)란 무엇인가? 1. 소개 API의 정의: API 또는 응용 프로그램 프로그래밍 인터페이스는 소프트웨어 및 응용 프로그램을 구축하기 위한 일련의 프로토콜, 루틴 및 도구입니다. 서로 다른 시스템, 응용 프로그램 또는 서비스 간의 통신을 허용하여 데이터를 교환하거나 기능에 액세스할 수 있습니다. API의 목적: API는 서로 다른 소프트웨어 시스템 간의 다리 역할을 하여 상호 작용하고 정보를 교환할 수 있도록 합니다. 이를 통해 조직은 다른 시스템의 기능과 데이터를 활용하여 효율성을 높이고 데이터 통합을 개선할 수 있습니다. API는 또한 기업이 외부 개발자에게 서비스를 제공할 수 있는 방법을 제공하여 기업의 제안과 통합되는 새로운 애플리케이션 또는 서비스를 구축할 수 있도록 합니다. 서로 다른 시스템이 통신할 수 있는 .. 2023. 2. 7.
Linux 기본적인 명령어 정리 데이터 엔지니어링 관련해서 다양한 DB나 프레임워크 등을 ubuntu에 설치 등의 작업을 하다보면 리눅스 명령어를 정확히 어떤 명령어인지 파악하지 못하고 대충 넘어가곤 했다. 특히 명령어 뒤에오는 옵션들의 경우에는 궁금해서 찾아보는 것들도 있지만 빠르게 인프라를 구축해야 하거나 시간이 쫒기는 등의 상황에서는 무심코 넘어갔던 것들이 있어 이번 기회에 리눅스의 기본 명령어들을 정리해보고자 한다. 1. ls(list segments) 현재 위치의 파일 목록을 보여준다. 머릿속에 다른 커맨드가 떠오르지 않을 때 무의식적으로 쓰곤한다. 사용하고나면 편안해진다. $ls -l : 파일의 상세정보 확인 $ls-a : 숨긴파일 표시 2. cd (change directory) 디텍토리를 변경할 때 사용한다. $cd ~ .. 2023. 2. 7.
빠른 MySQL 기본 설치방법 및 세팅 1. apt-get 업데이트 및 서버 설치 및 세팅 $ sudo apt-get update $ sudo apt-get install -y mysql-server $ sudo systemctl start mysql $ sudo systemctl status mysql $ sudo systemctl enable mysql $ mysql --version 2. IP 대역 변경 $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 127.0.0.1 에서 원하는 걸로 변경 bind-address = 0.0.0.0 mysqlx-bind-address = 0.0.0.0 3. MySQL 접속 $ sudo mysql 4. 계정 생성 select user, host from user;# 사용자 .. 2023. 1. 31.