검색 본문
jjaedang.tistory.com Wonderful Life [log] 데이터베이스 구축 & 백엔드와 DB 연동 (MYSQL, SQLalchemy) 1. 프로젝트 소개 필자는 영상으로 녹화하는 일기 플랫폼 log를 제작하였다. 오늘은 log 서비스를 만들며 구축했던 데이터베이스를 소개해보려한다. log 서비스의 페이지별 메뉴 구성도는 다음과 같다. 데이터베이스에 데이터 저장이 필요한 페이지는 다음과 같았다. 1. Login 페이지 : 회원가입, 로그인 과정에서 사용자들의 username, email, password 2. Record 페이지 : 녹화한 영상, 오늘의 감정, 영상의 full 텍스트, 요약본, 해시태그, 영상 썸네일 이미지 3. Feed 페이지, Social 페이지 : 영상 별 좋아요 2. 데이터베이스 테이블 설계 기능, 저장해야하는 데이터를 고려하여 다음과 같은 5개의 릴레이션을 설계하였다. 필자는 프로젝트의 데이터베이스 작업을 MYSQL Workbench를 연결해 사용했다. 테이블 생성 시, MYSQL Workbench에서 Create Table 설정을 통해 직접 입력할 수도 있고, 아래와 같은 SQL구문을 이용할 수도 있다. CREATE TABLE user_account ( username VARCHAR(32) PRIMARY KEY NOT NULL UNIQUE, email VARCHAR(345) UNIQUE DEFAULT 3. 외래키 설정 데이터베이스의 일관성 유지를 위해 테이블별 외래키를 설정하였다. 외래키 지정은 각 테이블 설정에서 직접 참조하는 테이블과 애트리뷰트, ON UPDATE/DELETE 옵션까지 지정할 수도 있고 SQL구문을 활용할 수도 있다. 필자는 SQL구문이 더 편리하여 이를 이용하였다. 아래 코드는 video_info 테이블에서 username 애트리뷰트가 user_account 테이블의 username 애트리뷰트를 참조하도록 외래키를 지정하였다. ON DELETE CASCADE 옵션으로 사용자가 계정을 삭제하면 DBMS가 자동으로 영상 기록도 4. 백엔드(Flask)와 DB 연동 다음으로, 백엔드 Flask와 MYSQL 데이터베이스를 연결하겠다. Flask에서는 SQL은 대표적인 파이썬 ORM 라이브러리인 sqlalchemy를 이용했다. config.py 파일 config 파일에서 ApplicationConfig 클래스를 정의하겠습니다. 각 속성은 다음과 같습니다. SECRET_KEY: Flask 애플리케이션의 보안 키. 세션 데이터, CSRF 보호 등을 위해 사용 SQLALCHEMY_TRACK_MODIFICATIONS: SQLAlchemy가 객체 변경을 추적할지 여부 설정 SQLALCHEMY_ECHO: S 5. 데이터 조회/삽입/삭제 (SQLAlchemy) 데이터 조회 DB에서 특정 videoId인 영상에 좋아요를 누른 사람들, 댓글을 조회하는 코드이다. likeLog에서 video_id가 입력인수와 같은 데이터를 조회해 username값만 모두 가져와 리스트에 넣어 like_list를 만들었다. def get_likes(videoId): like_ids = likeLog.query.filter(likeLog.video_id == videoId).with_entities(likeLog.username).all() likes_list = [] for i in like_ids: 19 필자는 영상으로 녹화하는 일기 플랫폼 log를 제작하였다. 오늘은 log 서비스를 만들며 구축했던 데이터베이스를 소개해보려한다. log 서비스의 페이지별 메뉴 구성도는 다음과 같다. 데이터베이스에 데이터 저장이 필요한 페이지는 다음과 같았다. 1. Login 페이지 : 회원가입, 로그인 과정에서 사용자들의 username, email, password 2. Record 페이지 : 녹화한 영상, 오늘의 감정, 영상의 full 텍스트, 요약본, 해시태그, 영상 썸네일 이미지 3. Feed 페이지, Social 페이지 : 영상 별 좋아요 db 개발 MySQL 데이터베이스 FLASK DB 구축 SQLAlchemy 백엔드 db 연동 2024.05.21 블로그 검색 더보기 sol-aftercoding.tistory.com 코드 뒤의 솔방울 [ 3과목/필기 ] 데이터베이스 구축 12 [2022년 1회 필기] : 데이터베이스 구축(3과목) 1번은 논리적 설계 시 고려사항 데이터 베이스 설계 단계 : 1. 개념 설계 : ERD작성 2. 논리 설계 : 스키마 평가 및 정제, 정규화, 트랜젝션 인터페이스 설계 3. 물리 설계 : 성능 고려 → 레이블, 클러스터링, 인덱스, 뷰 생성 > 반정규화 WHERE 조건절이 없는 DELETE... 데이터베이스 구축 정처기 필기 22년 1회 필기 정처기 문제 정리 정처기 3과목 2024.05.11 paurene.tistory.com 파우르네 정보처리기사 3과목 데이터베이스 구축 기출 모음 46 정보처리기사 3과목 데이터베이스 구축 41. 다음 조건을 모두 만족하는 정규형은? (22.04 기출) ❶ BCNF ② 제1정규형 ③ 제2정규형 ④ 제3정규형 42. 데이터베이스의 트랜잭션 성질들 중에서 다음 설명에 해당하는 것은? (22.04 기출) ❶ Atomicity ② Consistency ③ Isolation ④ Durability 43. 분산 데이터베이스... 2024.04.30 정보처리기사 3과목 데이터베이스 구축 기출 분류 monews.co.kr news 원자력의학원, 세계 최초 저선량률 방사선 바이오데이터베이스 구축 < 의대병원 < 병원·개원가 < 기사본문 - 메디칼업저버 cells(인간 유래 세포), ▲Mouse tissue(실험쥐 조직) 카테고리로 분류해 제공했다. 데이터베이스 구축에 사용된 연구 데이터는 국제 분자 과학 저널(정상인과 당뇨환자 혈관내피세포의 저선량 방사선 유전자... 2024.02.29 웹문서 검색 더보기 skstjdrhdgksek.tistory.com 개발자의 똥땅똥땅 성장기 [정보처리기사 필기] 3과목 : 데이터 베이스 구축 5. 정규화 ( Normalization ) : 데이터베이스 내부에 불필요한 중복으로 발생하는 이상(Anomaly)을 해결하는 방법. → 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량을 줄일수 있음. Anomaly현상의 종류- 삭제 이상- 삽입 이상- 갱신이상 ※ 정규화 : 데이터 베이스 설계에서 중복을 최소화하고 데이터를 구조화해서 데이터 중복과 이상 현상을 방지하는 과정 ※ 반정규화 : 성능 향상을 위해 정규화된 데이터 모델을 더 유연하게 조정하여 중복을 허용하는 과정. 정규화 과정 비정규 릴레이션↓ 도메인이 원자값1NF↓ 부분적 함수 종속 제거2NF↓ 8. 관계 대수 연산자 1. 순수 관계 연산자 - SELECT: σ 튜플 구하기 (σ평균 >= 90(성적) →평균이 90점이상인 듀플 검색) - PROJECT: π 속성 구하기 (특정 속성들만 추출) - JOIN: ▷◁ 합치기 - DIVISION: ÷ 해당하는 튜플의 검색 대상 속성은 제거하고 보여주기 2. 일반 집합 연산자 - UNION: ∪ 합집합 (중복 제거한) - UNION ALL : 중복을 포함한 결과 합집합 - INTERSECTION: ∩ 교집합 - DIFFERENCE (MINUS ): - 차집합 - CARTESIAN PRODUCT: × 교 11. 투명성 - 분산 데이터베이스 분산 데이터 베이스 구성요소 분산 처리기 : 자체적으로 처리 능력을 가지며, 지리적으로 분산되어있는 컴퓨터 시스템 분산 데이터베이스 : 지리적으로 분산되어있는 데이터 베이스로서 해당 지역의 특성에 맞게 데이터 베이스가 구성 통신 네트워크 : 분산처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동 할 수 있도록 하는 통신 네트워크 투명성 설명 위치투명성(Location Transparency) 데이터 베이스의 실제 위치를 알 필요없이 데이터베이스의 논리적인 명칭만으로 엑세스할 수 있음-> 물리적 위치를 몰라도 이름만 26 : 데이터베이스 내부에 불필요한 중복으로 발생하는 이상(Anomaly)을 해결하는 방법. → 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량을 줄일수 있음. Anomaly현상의 종류- 삭제 이상- 삽입 이상- 갱신이상 ※ 정규화 : 데이터 베이스 설계에서 중복을 최소화하고 데이터를 구조화해서 데이터 중복과 이상 현상을 방지하는 과정 ※ 반정규화 : 성능 향상을 위해 정규화된 데이터 모델을 더 유연하게 조정하여 중복을 허용하는 과정. 정규화 과정 비정규 릴레이션↓ 도메인이 원자값1NF↓ 부분적 함수 종속 제거2NF↓ 정보처리기사 SQL 데이터베이스 3과목 2024.05.06 [정보처리기사 필기] 3과목 : 데이터 베이스 구축 - 기출기반 개념 hjeong0711.tistory.com 형정이의 개발개발 데이터베이스 구축 절차 5 데이터베이스 구축 절차 확인 MySql 워크 벤치를 실행 스키마는 데이터베이스와 같은 말이라고 생각하면 된다 [Edit] - [Preference] 에 들어간다 [SQL Editor] - [Safe Updates] 에 체크를 해지한다. SQL 쿼리문 작성 및 데이터 확인 데이터 베이스 생성 -- DBMS 안에 여러개의 데이터베이스를 생성할 수 있습니다... 2024.05.28 DB (데이터베이스) 통합웹 더보기
서비스 안내 스토리의 글을 대상으로 검색결과를 제공합니다. 자세히보기 scian.xyz SCIAN EP.1 링크 단축 서비스 (2) — Vercel 연결 및 데이터베이스 구축 vercel.json 설정 이전 게시글까지 잘 따라왔다면, GitHub 리포지토리에 app.js라는 파일과 package.json이라는 파일이 생성되어 있을 것이다. 우리는 이제, 이 리포지토리를 서버에 호스팅하기 위해 Vercel이라는 사이트를 이용할 것이다. Vercel에 대한 설명과 설정 방법은 아래 포스팅에 자세히 설명해 놓았으니, 아래 게시글을 보고 다시 이 글로 돌아오자. 이전 게시글을 봤다면, 남은 단계를 모두 진행하면 된다. 2024.05.13 - [잇(IT)! 가이드] - EP.0 웹사이트 무료로 호스팅하기 (feat. Vercel & Git Git Commit & Push GitHub Desktop으로 돌아가 이 내용을 Commit & Push해 주자. VSCode 내의 Git 확장 기능을 사용해도 좋다. (이와 관련해서는 구글 검색을 해보면 많은 자료가 나와 있을 것이다.) Commit & Push 데이터베이스 구조 데이터베이스를 구축하기 전에, 간단하게 우리의 데이터베이스 구조와 서버의 연결 에 대해 살펴보자면, 우리는 links라는 이름의 테이블에 우리가 사용할 링크의 정보(원래 url, 나중 url, 보안 기능, 설명 등등등)를 담아놓고, 서버에서 접속한 url과 데이터베이스의 내용을 비교하여 Vercel의 postgresql 데이터베이스 생성 다시 Vercel 창을 열고, 스토리지 탭에 접속한다. Storage Postgres라는 데이터베이스를 선택하여 만들어 준다. Postgres 동의를 눌러주고, 리전 선택에서 한국과 그나마 가까운 싱가포르를 선택해 준다. (다른 곳을 선택해도 큰 문제가 있는 것은 아니다.) 그리고, 데이터베이스 이름을 원하는 것으로 바꿔준다. 리전 선택 이후, connect 버튼을 눌러준다. 데이터베이스—프로젝트 연결 바로 열리는 페이지에서 .env.local 탭을 눌러 나오는 데이터베이스 접속 정보를 메모해 둔다. Show secret 버튼을 눌 Datagrip 설치 SQL 문법에 대해 잘 안다면 직접 연결해서 사용하거나, 코드를 짜서 데이터베이스를 관리할 수도 있지만 본 프로젝트에서는 GUI(그래픽 사용자 인터페이스) 기반의 툴을 사용해서 쉽게 데이터베이스를 관리하고자 한다. 이를 위해서 Datagrip을 설치해 준다. (30일 무료 체험판을 제공하며, 학생은 무료이다.) 만약 다른 소프트웨어를 사용하고 있다면, 그 제품을 써도 무방하다. (Tableplus도 무료로 쓸만 하다.) 다만, 본 예시에서는 Datagrip을 기준으로 설명하도록 하겠다. https://www.jetbrains.com 데이터 소스 추가 Datagrip을 열고, File 메뉴>아래 경로(macOS 기준)를 따라서 Postgresql을 추가해 준다. 데이터 소스 추가 이후, 메모해둔 정보를 입력해 준다. 데이터 소스 추가 (정보 입력) 콘솔 확인 만약 잘 추가했다면, 아래와 같은 페이지를 볼 수 있을 것이다. 성공 페이지 links 테이블 생성 위에서 열린 콘솔에 아래 명령어를 입력해 준다. id는 고유한 값으로 각 링크와 1:1로 연결된다. alias는 [도메인주소]/[텍스트] 형식에서 [텍스트] 부분에 들어갈 문자열을 뜻한다. url은 단축할 url, name은 내부적으로 확인할 별칭, status와 password는 보안 관련 기능(추후에 설명하도록 하겠다.), description은 내부적으로 확인할 설명, timestamp는 생성 시간을 의미한다. 또한, ios_url과 android_url은 접속 장치에 따라 다른 url로 접속하도록 할 때 필요한 기능이다. C logs 테이블 생성 links 테이블이 잘 생성된 것을 확인하고, 아래 명령어도 콘솔에 다시 입력해 주자. 이전에 입력한 명령어는 지우는 것을 잊지 말자. 마찬가지로 id를 만들어 주고, ip주소는 방문자의 ip주소를 기록하는 공간이며, alias를 통해 위에서 만든 links 테이블과 연결된다. 또한, 접속 시간을 timestamp에 기록하며, 방문자 브라우저의 상세정보를 useragent에 기록한다. CREATE TABLE logs( id SERIAL PRIMARY KEY, ip text, alias text, time 8 GitHub Desktop으로 돌아가 이 내용을 Commit & Push해 주자. VSCode 내의 Git 확장 기능을 사용해도 좋다. (이와 관련해서는 구글 검색을 해보면 많은 자료가 나와 있을 것이다.) Commit & Push 데이터베이스 구조 데이터베이스를 구축하기 전에, 간단하게 우리의 데이터베이스 구조와 서버의 연결 에 대해 살펴보자면, 우리는 links라는 이름의 테이블에 우리가 사용할 링크의 정보(원래 url, 나중 url, 보안 기능, 설명 등등등)를 담아놓고, 서버에서 접속한 url과 데이터베이스의 내용을 비교하여 웹 가이드 SQL 데이터베이스 postgres ep1 node.js vercel 링크 단축 서비스 2024.05.16 티스토리 검색 더보기 brunch.co.kr OurStellar 22. 데이터 베이스 구축 과정 7 베이스는 데이터 중복을 최소화하기 위해 테이블을 가능하면 분리하고, 분리된 테이블은 동일한 키 필드로 관계를 맺어 필요한 데이터가 연결될 수 있도록 했다. 데이터 베이스를 구축하는 과정은 궁극적으로 테이블을 만드는 과정이라 할 수 있다. 프로그램 개발자가 현실의 일처리를 코딩해서 컴퓨터가 일하게 하듯... 데이터베이스 IT 직업 2023.04.21 브런치스토리 검색 더보기 story.kakao.com 炫剛고병숙髙秉璹 炫剛고병숙髙秉璹 - 카카오스토리 맞이하였습니다. 지난 30년간 [光敎]는 창의력으로 선도하는 광교 라는 기치 아래 도서출판과 데이터베이스구축, 세무프로그램과 전자책 개발 등 세무출판업계를 선도하고 있습니다. 오늘이 있기까지는 저의 노력... 2024.04.17 카카오스토리 검색 더보기
우리비엔씨 www.wooribnc.com/ 응용소프트웨어, 윈도우 프로그램개발, 데이터베이스 설계, 구축, 튜닝 업체, 전산 프로그램, 응용 소프트웨어 개발 의뢰. 전화고객센터: 070-4809-7769 채널 장소 크라우드웍스 www.crowdworks.ai/ 크라우드소싱 기반, 딥러닝 데이터 구축 플랫폼. 텍스트, 이미지, 영상, 음성 데이터 수집, 가공. 구글플레이 앱스토어 전화고객센터: 02-6954-2960 채널 장소 쇼우테크 www.ishowtech.co.kr/ 데이터베이스 구축, 솔루션 개발, 기록물 DB구축, 제적부 전산화 서비스 업무 안내. 전화고객센터: 055-323-3169 장소 사이트 더보기
서비스 안내 Kakao가 운영하는 책 서비스 입니다. 다른 사이트 더보기 정보처리기사 필기(2021) 저자 길벗알앤디 외 출간 2021.1.11. 도서 29,700원 데이터베이스 설계 및 구축 저자 오세종 출간 2023.5.8. 도서 22,770원 오라클 성능 고도화 원리와 해법 1 저자 조시형 출간 2019.10.28. 도서 35,100원 오라클 성능 고도화 원리와 해법 2 저자 조시형 출간 2019.10.28. 도서 41,400원 물류 데이터베이스 구축 실무 저자 김진수 출간 2010.1.15. 도서 28,500원 e북 27,000원 데이터베이스 설계 및 구축 저자 오세종 출간 2012.2.15. 도서 20,000원 실전 XML 데이터베이스 구축 저자 MINORU LNUI 외 출간 2006.9.7. e북 11,340원 실전 XML 데이터베이스 구축 저자 MINORU LNUI 외 출간 2002.8.27. 데이터베이스 구축 및 활용 실습 저자 석상기 출간 2001.8.1. 전통무예 데이터베이스 구축 및 활용방안 연구 저자 성문정 출간 2022.5.31. 도서 4,700원 더보기 (주)카카오는 상품판매의 당사자가 아닙니다.법적고지 안내 (주)카카오는 통신판매중개자로서 통신판매의 당사자가 아니며 상품의 주문 배송 및 환불 등과 관련한 의무와 책임은 각 판매자에게 있습니다.