본 글은 갖고노는 MySQL 데이터베이스 by 얄코 강의를 수강하고 이를 정리한 글입니다. 식별자와 인덱스 PK, Unique, FK (기본키, 고유키, 외래키) 1. 기본키(Primary Key, PK) 중복되지 않는 고유값 NOT NULL PK는 테이블 당 하나만 있어야 함 -- 기본키 넣는 방법 1 CREATE TABLE people ( first_name CHAR(2) **PRIMARY KEY**, last_name CHAR(3), nickname VARCHAR(10) ); -- 기본키 넣는 방법 2 CREATE TABLE people ( first_name CHAR(2), last_name CHAR(3), nickname VARCHAR(10), **PRIMARY KEY (first_name)**..
본 글은 갖고노는 MySQL 데이터베이스 by 얄코 강의를 수강하고 이를 정리한 글입니다. 데이터 조작하기 1. MySQL 설치하기 MacOS에서는 homebrew를 이용해서 간단하게 설치할 수 있다. $ brew install mysql MySQL을 설치하고서는, 보안을 강화하기 위해 다음 명령어를 실행하여 보안 패키지를 설치할 것이 권장된다. $ mysql_secure_installation 그렇다면 여러 가지 옵션들이 나오는데(패스워드 설정, Anonymous 유저 삭제, 기본 테스트 스키마 삭제할 것인지 등), 원하는 것을 선택해주면 된다. 나의 경우는 전부 Y로 체크했다. 비밀번호같은 경우는 강도를 설정하라는 안내도 나올 수 있다. MySQL 서버를 실행하려면 다음 두 가지 명령어 중 하나를 이..
본 글은 갖고노는 MySQL 데이터베이스 by 얄코 강의를 수강하고 이를 정리한 글입니다. SELECT 심화, 복합적인 데이터 가져오기 1. 서브 쿼리(Sub Query) 서브 쿼리는 쿼리 안에 들어가있는 또다른 쿼리를 말한다. 1. 비상관 서브 쿼리 메인 쿼리 문과 서브 쿼리 문이 서로 관계가 없는 것, 테이블을 서로 참조하지 아니하는 것 SELECT CategoryID, CategoryName, Description, (SELECT ProductName FROM Products WHERE ProductID = 1) FROM Categories; -- Categories 내에서, ProductID = 1인 ProductName을 Products에서 뽑아냄 CategoryID CategoryName De..
본 글은 갖고노는 MySQL 데이터베이스 by 얄코 강의를 수강하고 이를 정리한 글입니다. RDBMS 관계형 데이터베이스 관리 시스템(RDBMS)는 표를 기준으로 데이터를 저장 및 관리하는 시스템을 의미한다. 역사적으로 오래 사용되어 왔고 많은 곳에서 사용되는, 가장 기본이 되는 데이터베이스 시스템이다. 트랜잭션 취소도 쉬워 안정적이고, 또한 데이터의 구조를 일관적으로 가져갈 수 있다는 장점때문에 널리 이용된다. SQL이라는 데이터베이스 관리용 언어를 사용하게 되며, RDBMS의 대표적인 제품으로는 MySQL, PostgreSQL, MSSQL 등이 있다. 본 글은 MySQL에서 사용되는 SQL의 문법을 정리한 글이다. 한편 이 링크로 들어가면 MySQL 쿼리문을 실제로 시험해볼 수 있는 에디터가 나온다...
이 글은 Edwith의 Essential Hands-On 강의 4강을 듣고 이를 정리한 글입니다. VPC 생성하기 VPC 생성하기 NCP를 이용하기 위해서는 우선 VPC를 생성하여야 합니다. VPC는 Networking 탭의 VPC 탭에 있습니다. 위 페이지에서 VPC 생성 버튼을 누릅니다. IP 주소 범위는 가장 기본값으로 설정하였습니다. 생성 중인 상태가 생성 완료로 바뀌면 VPC가 생성된 것입니다. 이렇게 뜨면 성공입니다. ACL 설정 한편 다음으로 해야 할 설정은 ACL입니다. Network ACL → ACL Rule 탭에 들어가보면, 기본 생성된 ACL이 들어가 있는 것을 확인할 수 있습니다. 다만 기본적으로 생성되는 디폴트 ACL은 잘 사용하지 않고, 요구 사항에 맞추어서 개별 ACL을 만들어..
Python으로 Notion Database에 데이터 업로드하기 이전 글: Selenium과 BeautifulSoup으로 네이버 클라우드 플랫폼 가이드 정보 추출하기 이전 글에서, Selenium과 BeautifulSoup을 사용해서 네이버 클라우드 플랫폼 가이드 정보를 추출해서, JSON 포맷으로 저장했다. 이번 글에서는, 저장된 정보를 Notion Database에 추가해 보겠다. 사실 과정 자체는 은근히 간단한데, 노션 API 자체의 한계로 노가다가 필요하다. API 키 발급받기 & 데이터베이스 ID 확인하기 Notion 내 API 통합 페이지에서, API를 하나 발급받는다. 그리고 '기능' 탭에 들어가서, 권한을 확인해 준다. 콘텐츠 읽기, 업데이트, 입력 등의 권한이 체크돼 있는 지 확인해준다...
2023년 1학기 회고록 벌써 23년 1학기, 나의 2학년 1학기가 끝이 났다. 원체 순식간에 끝났기에 무슨 일이 있었는지도 모르겠다. 아쉬운 점도 많았던 학기였다. 무언가를 많이 해보려고 했는데 또 막상 한 것을 돌아보면 별로 없기도 한 것 같다. 솔루션 챌린지(Solution Challenge) 지난 12월부터, 본격적인 팀 빌딩부터 시작이라 치면 1월부터 4월 초반 제출까지, 3개월 동안 Solution Challenge를 진행했다. 사실, 정말 힘들었었다. 워낙 급하게 시작했기에 Flutter에 대한 이해도 부족했고, 프론트를 포함한 모바일에 대한 지식이 부족하다 보니 설계 자체를 어떻게 해야 할지 감도 없었다. MVC, MVVM에 관한 이해도 당연히 없었고, 정말이지 앱의 설계 자체를 어떻게 해..
Flutter GetX에 대해 이해하기 GetX란? GetX는 Flutter에서 사용 가능한 StateManager이다. GetX를 사용하는 방법 중 가장 많이 보았을 방법은 바로 page route 관리이다. 우리가 페이지를 이동하려 할 때, 다음과 같은 route 기반 코드를 볼 수 있다. Navigator.of(context).push(MaterialPageRoute( builder: (_) => NextPage(), )); Navigator를 사용하는 방법도 좋긴 한데, GetX를 사용하면 더 편리하게 할 수 있다. Get.to(NextPage()); 이런 식으로 처리가 가능하다. 그러나 단순히 페이지 라우팅 기능 외에도, GetX는 상태 관리에 있어 강력한 기능들을 제공한다. 상태 관리란? 상태..
이전 글 Software Engineering at Google #1. Preface 8장 스타일 가이드와 규칙 이전 글에서 Part 1. 전제를 읽고 리뷰하였다. Part 2. 문화를 문화를 건너 뛰고 Part 3. 프로세스 부분을 바로 보자. 프로세스 부분에서는 구글의 스타일 가이드와 규칙, 코드 리뷰, 테스트, 폐기에 대한 내용을 다루고 있다. 이번 글에서는 그 중 8장 스타일 가이드와 규칙 부분을 살펴보자. 스타일 가이드란? 대부분의 엔지니어링 조직에서는 코드 베이스를 관리하는 규칙이 존재한다. 구글은 코딩할 때 따라야 하는, 혹은 하지 말아야 할 규칙들을 모아서 프로그래밍 스타일 가이드(Programming Style Guide)로 정리해 표준으로 삼았다. 이 스타일 가이드는 단순한 코드의 형식..
CMake를 사용해보자 CMake를 들어보았는가? CMake란 C/C++에서 사용되는 빌드 시스템이다. CMake를 사용하면 C++ 프로젝트를 더 쉽게 관리할 수 있게 된다. 그런데 우선, CMake를 알아보기 전에 make에 대해서 먼저 알아보자. make란? C++ 파일을 실행시키기 위해서는 어떻게 해야 하는가? 만약 C++를 처음 배운다면, Visual Studio를 실행시키고, 새로운 프로젝트를 생성해서, ctrl + shift + b 로 빌드하여 실행을 했을 것이다. 그러나 그 과정이 어떻게 이루어지는 지 알고 있는지 궁금해본 적 있는가? 간단히만 설명하자면, C++ 파일을 실행하기 위해서는 컴파일, 빌드, 링크 등의 과정이 필요하다. 컴파일은 CPP 파일을 읽고 기계어로 변환하는 과정이다. 이..