오늘의 주제는 데이터베이스 설계를 한 것을 바탕으로 직접 쿼리를 짜보는 시간 .. 😆 (SQL의 기본 문법과 join, subquery는 알고 있다는 가정 하에 작성했다) 위의 ERD를 바탕으로 요구 사항에 대해 어떻게 데이터를 줄지 고민해보자💡 책이 받은 좋아요 개수를 보여준다. book테이블에 likes라는 속성이 있었으면 아래와 같은 query를 사용하면 된다.select likes from book; 하지만 book 테이블에 likes 칼럼이 없다면 아래와 같은 query가 필요하다select count(*) from book_likes where book_id = {대상 책 아이디}; 위의 요구 사항에서 추가로 아래와 같은 요구 사항이 생긴다면 어떻게 할까?💡 책의 좋아요 갯수를 계산..
전체 글
소프트웨어학부 재학중/개발을 기록합니다.겨울 방학 때 연동 했던건데 이제 쓰네,, 기억날 때 바로바로 쓸걸 반성합니다Fastapi에서 데이터베이스를 관리하는 방법을 먼저 알아본 후, PostgreSQL 연동하는 방법을 알아보자 🤓 PostgreSQL를 선택한 이유는?PostgreSQL 강력한 관계형 데이터베이스 관리시스템(RDBMS)이다. 복잡한 쿼리, 확장 가능성, 다양한 데이터 타입 지원(특히 json) 등의 기능을 제공하기에 선택했다. Fastapi에서 데이터베이스를 사용하는 방법 --> 모델로 데이터베이스 관리하기Django에 비해 fastapi는 데이터베이스와의 통합을 직접적으로 관리하지 않지만, Python에서 사용 가능한 여러 데이터베이스 라이브러리와 잘 호환된다. fastapi에서 DB를 관리하는 파일은 주로 2개이다.d..
💡 학습 목표1. web server와 web application server의 차이를 이해한다.2. Reverse Proxy를 이해하고 적용한다. 지금의 웹은 어떻게 작동할까?미리 정해진 (정적인) 콘텐츠를 준비해두고 요청이 오면 응답으로 주는 것이 아닌, 요청이 올 때마다 해당 요청에 적절한 콘텐츠를 만들 수 있다면 (동적인) 것이 지금의 웹이다. Web Server 정적 콘텐츠 호스팅Port 번호를 통해 IP 주소를 통해 식별된 컴퓨터의 프로세스를 찾아 데이터를 송신한다고 했다그래서 앞서 보안그룹에서 TCP 80번 포트를 열어준 이유가 EC2의 IP주소를 통해 EC2를 식별 후 80번 포트로 열린 (=Web Server인 NGINX)로 요청을 보내기 위함이다. 웹 브라우저에서 IP주소를 입력..
PLC란퍼셉트론 학습 알고리즘(Perceptron Learning Algorithm, PLA)은 프랭크 로젠블라트에 의해 1957년에 개발된 간단한 유형의 선형 분류기이다. 이 알고리즘은 감독 학습의 한 형태로, 이진 클래스에 속하는 데이터를 분류하는 데 사용된다. 퍼셉트론은 입력 특성에 가중치를 할당하고, 이 가중치의 선형 조합을 통해 출력을 생성한다. 출력값은 일반적으로 이진 결과로, 예를 들면 +1 또는 -1과 같은 형태이다. 퍼셉트론 학습 알고리즘의 기본 원리1. 초기화: 가중치를 0 또는 작은 무작위 값으로 초기화2. 예측: 각 훈련 샘플에 대해, 가중치와 입력 벡터의 내적을 계산 계산된 결과에 따라 출력이 결정 (예: 활성화 함수로 단위 계단 함수 사용 시, 결과가 0보다 크면 +1, 아니면 ..
들어가기 전 VPC를 실습하기 위해서는 사전 지식이 필요하다. IP주소 모든 인터넷 사용 장치는 최소한 하나 이상의 IP주소를 가지고 있다. 이 주소를 통해 서로 통신할 수 있다. IP주소는 네트워크와 호스트 부분으로 구분되어 있으며, 서브넷 마스크는 이 두 부분을 구분하는 데 사용된다. 예를 들어, IP주소가 192.168.1.1이고 서브넷 마스크가 255.255.255.0인 경우, 네트워크 부분은 192.168.1 이고 호스트 부분은 .1이다 네트워크 주소: 특정 네트워크를 식별하는 데 사용된다. 이 주소는 네트워크의 시작점을 나타내며, 특정 네트워크 전체를 대표하는 식별자 역할을 한다. 호스트 주소: 네트워크 내의 개별 장치(ex.컴퓨터, 프린터, 스위치 등)을 식별하는 데 사용된다. 각 장치는 네..
크롤링은 파이썬을 이용해서 했으며 BeautifulSoup을 이용했다.BeautifulSoup이란? 파이썬 라이브러리로, HTML 및 XML 파일에서 데이터를 추출해준다코랩으로 코드를 작성하였기에 따로 BeautifulSoup install은 해주지 않았었다. 왜 네이버뉴스를 크롤링을 하는 것인가? 우리가 가장 많이 사용하는 포털 네이버, 네이버에 모든 언론사들이 있기에 한 언론사를 지정하기 보다는 모든 언론사에 대해 분석을 하고 싶어 네이버뉴스를 선택했습니다. 프로젝트의 최종 목표는 "링크를 넣으면" --> "분석해준다" 였기에 크롤링이 필수였죠크롤링을 해서 추출하는 데이터는 뉴스 제목, 이미지, 본문, 날짜, 기자명, 카테고리, 언론사 였습니다. 먼저 네이버 뉴스를 들어가보겠습니다. 사실 eleme..
서버란? 서버는 OS에 의해 동작하는 프로세스이며 클라이언트의 역할을 하는 프로세스와 소켓을 통해 IPC(Inter-Process Coummunication)를 수행하는 것이라고 표현할 수 있다. 학습목표 1. 서버의 정의와 역할 이해하기 2. 서버가 어떻게 구축되는지 이해하기 이것을 기억하는 것이 목표 🥸 이제까지 개발을 위해서 프레임워크만 공부했다면, 이제 본격적으로 원리를 깊이 이해할 차례이다. 오늘은 데이터의 송수신 과정에 대해 깊이 알아보자. 서버와 클라이언트가 각각 하나의 프로세스로써 어떻게 데이터를 주고받는지 이해하기 위해서는 IP주소와 포트번호를 알아야 한다. IP주소와 포트번호 (OSI 7계층과 TCP/IP계층을 대략 알아야 한다. 모른다면 이것부터 알아두기) IP주소는 컴퓨터가 네트워크..
Bubblow 버블로우(Bubblow)는 'bubble'과 'low'의 합성어로, "버블을 날려버리자!"라는 의미를 담고 있다. 여기에서 'bubble'은 단순한 비눗방울이 아니라, 필터 버블을 지칭한다. 필터 버블이란 인터넷 정보 제공자가 사용자에게 맞춤형 정보를 제공함으로써 사용자가 필터링된 정보만을 접하게 되는 현상을 말한다. 알고리즘이 사용자가 최근에 관심 있어 하는 콘텐츠를 선별해 보여주는 것은 편리하다고 느껴질 수 있으나, 필터 버블에 갇혀버리면 사용자는 특정 주제와 편향된 정보만을 접하게 되며, 이는 위험도를 증가시킨다. 특히 우리 팀은 뉴스에서 나타나는 문제에 집중했다. 최근 미디어 환경에서 퍼져 있는 '가짜뉴스'까지 고려하면 확증편향의 문제가 더욱 심각해진다고 느꼈다. 그래서 가짜뉴스로 ..