1. 내가 AI 트랙에 참여한 계기는 무엇인가요? 대학에서 UX/UI 및 AI 마케팅 수업을 통해 문제를 발견하고 서비스를 기획하는 다양한 기회를 경험했다. 이러한 수업들에서 제공된 이론과 기획 방식들은 나에게 기술에 대한 더 깊은 이해와 탐구의 동기를 부여했다. 2
GPT 웹개발 2 주차 완료GPT 웹개발 3 주차 70% 완료console.log: 콘솔창에 메시지나 변수의 값을 출력let: 변수를 생성하고 값을 할당list, dict 차이 \- 리스트: 순서가 있는 요소의 모음 \- 딕셔너리: 키와 값의 쌍으로 구성된 요소의
GPT 웹개발 3 주차 완료GPT 웹개발 4 주차 완료GPT 웹개발 5 주차 80% 완료항목을 반복할 수 있음 웹에서 전송된 데이터를 서버 측으로 받아 올 수 있음db.session.add()db.session.commit() !commit 해야 적용됨!
GPT 웹개발 강의 완료파이썬 문법 기초 72% 완료팀 미팅 진행터미널에 아래 코드 입력해 라이브러리 목록을 requirements에 저장pip freeze > requirements.txtvenv 제외한 프로젝트 파일 압축pythonanywhere에 업로드하고 unz
파이썬 문법 심화 완료Up Down 게임 제작처음으로 배운 문법들로 게임을 개발하고 있지만 생각보다 막히는 부분들이 많다.오늘 제일 문제였던 부분은 random_number가 숫자를 입력할 때마다 바뀐다는 건데 차근차근 확인해 보니 while true 아래에 넣어서 계
Up Down 게임 완료가위바위보 게임 완료게임 코드 GitHub에 제출어제 진행했던 코드에서 시도 횟수를 보이게 추가했고 지난번에 실패했던 정답을 맞힐 시 break 를 통해 멈추게 만들었다. 또 정답을 맞힌 다음 게임 진행 여부를 묻는 문장인 "y" 또는 "n"가
팀 GitHub 세팅팀플 진행팀 프로젝트 파트 작성플랫폼의 회원과 게시물을 관리하는 프로그램을 개발하는 것인데 나는 append 를 활용해 회원 인스턴스를 만들고 리스트를 프린트하는 역할을 담당했다. 오늘까지 진행된 코드는 이렇게 된다:사실 코드를 짜는데는 그렇게 어렵
팀 프로젝트 코드 수정GitHub branch error 수정오늘은 작성한 코드 중에 Class를 얘기해보자 한다. 이번에 작성한 코드는 아래와 같다:팀 프로젝트에 필수인 class를 사용해 member 라는 클래스를 정의했다.클래스의 인스턴스가 생성될 때 \_ ini
팀 프로젝트 과제 3 코드 수정팀 프로젝트 과제 4 설계코딩 복습오늘은 유저가 게시물을 3개 작성해야만 다음 단계로 넘어갈 수 있는 코드를 짜보았다. 이 반복문은 0부터 2까지 반복하며, 총 세 번 반복한다. 이는 사용자가 총 세 개의 게시물을 작성할 수 있도록 설정된
팀 프로젝트 진행파이썬 코드 복습 range는 파이썬에서 숫자 시퀀스를 생성하는 데 사용하는 내장 함수이다. 주로 for 루프와 함께 사용되어 특정 범위 내에서 반복 작업을 수행할 때 사용된다.range(start, stop, step)%는 파이썬에서 나머지 연산자로
팀 프로젝트 코드 작성, 회의 팀 발표 준비 파이썬 코드 복습팀 과제가 2개가 있었는데 하나를 생각보다 빨리 마무리해 선택 과제인 과제 4를 디테일하고 기능이 많게 만들기로 결정 했다. 과제 4는 가위바위보 게임을 웹페이지로 만드는 것이였는데 우리 팀은 페이지 2개와

팀 프로젝트 코드 작성, 회의팀 발표 ppt, script 준비KPT 회고 작성파이썬 코드 복습오후에 팀 프로젝트 발표가 있어 발표 ppt를 작성했다. 시간이 많이 부족했지만 그래도 프로젝트에 관해 정당히 작성할 시간이 있었다. 나는 전부터 Figma를 다양한 분야에
알고리즘 강의 시청팀 회의알고리즘 코드 복습문제: 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.알파벳 개수만큼 -1을 반
알고리즘 강의 시청코드 문제 풀이알고리즘 코드 복습많이 사용되는 자료 구조 중 하나로 LIFO (Last In, First Out) 방식으로 진행된다. 즉, 나중에 들어간 데이터가 먼저 나온다.Push: 새로운 요소를 스택의 맨 위에 추가한다Pop: 현재 스택의 맨 위
알고리즘 강의 시청알고리즘 코드 문제 풀이백준에서 제공하는 알고리즘 문제를 푸는 중에 "알파벳 찾기"라는 문제를 접했다. 문제는 "각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력"이였다.get_id
알고리즘 강의 시청알고리즘 코드 문제 풀이프린터 큐현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다.나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그 렇지 않다면 바로
알고리즘 강의 시청알고리즘 코드 문제 풀이오늘도 백준에서 제공하는 알고리즘 문제를 푸는데에 집중했다. 문제는 여러 테스트 케이스를 처리하면서, 각 테스트 케이스마다 주어진 노드와 간선을 기반으로 그래프를 인접 리스트 형태로 생성하고, DFS(깊이 우선 탐색)를 사용해

알고리즘 강의 시청알고리즘 코드 문제 풀이이번에도 지난 문제와 비슷한 DFS 활용 문제를 접했다.바이러스(from 백준)신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다.한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜
알고리즘 강의 시청알고리즘 코드 문제 풀이그동안 DFS와 익숙해질려고 문제에 DFS를 사용해 보았는데 이번에는 문제를 통해서 BFS도 사용해 보았다. 바이러스(from 백준)그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성한다방문할 수 있
알고리즘 강의 시청알고리즘 코드 문제 풀이유기농 농장(from 백준)주어진 배추밭에서 인접한 배추 그룹을 찾아, 필요한 최소한의 배추흰지렁이 수를 계산각 테스트 케이스에 대해 필요한 최소 배추흰지렁이 수 출력이 코드는 sys 모듈을 사용하여 표준 입력으로부터 빠르게 데
알고리즘 강의 시청알고리즘 코드 문제 풀이백트래킹은 주어진 문제를 해결하기 위해 후보해(candidate solution)을 구축해 나가다가, 현재 후보해가 문제의 제약 조건을 위반하는 것으로 판명되면 즉시 후보해를 버리고 백트랙(backtrack)하여 다른 후보해를
Computer Science. ALU (Arithmetic Logic Unit): 산술 및 논리 연산을 수행하는 장치이다. 예를 들어, 숫자의 덧셈, 뺄셈, 곱셈, 나눗셈을 처리한다.CU (Control Unit): 명
객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그램을 여러 개의 객체(Object)로 나누어 작성하는 방법이다. 객체는 데이터와 이를 처리하는 코드를 포함하며, 각각의 객체는 특정 기능을 수행하도록 설계된다. 마치 우리가 여러
크라우드 서버는 클라우드 컴퓨팅 환경에서 제공되는 서버로, 인터넷을 통해 온디맨드 방식으로 컴퓨팅 자원을 제공한다. 이러한 서버는 사용자가 필요한 만큼의 자원을 즉시 사용할 수 있게 하며, 확장성과 유연성이 뛰어나다. 예를 들어, AWS, Google Cloud, Az
인공지능(AI)은 컴퓨터가 인간의 지능적인 행동을 모방하는 기술로, 다양한 분야에서 활용되고 있다. 인공지능의 주요 구성 요소는 기계학습(ML)과 딥러닝(DL)이다. 이 블로그에서는 인공지능의 기본 개념과 기계학습, 딥러닝의 주요 원리와 용어에 대해 알아보겠다.기계학습
쓰레드 풀이란, 미리 생성된 쓰레드의 집합으로, 필요할 때마다 작업을 할당하여 실행할 수 있도록 준비된 쓰레드 관리 메커니즘이다. 쓰레드 풀은 다중 스레딩 작업을 효율적으로 관리하고 시스템 자원을 절약하기 위해 사용된다.장점:자원 관리 효율성: 쓰레드를 미리 생성해 두
자료구조는 데이터를 저장하고 관리하는 방식으로, 다양한 종류가 있다. 대표적인 자료구조에는 배열, 연결 리스트, 스택, 큐, 트리, 그래프, 해시 테이블 등이 있다.배열 (Array):고정된 크기의 연속적인 메모리 공간에 데이터를 저장한다.인덱스를 통해 접근이 가능하며
공간 자원은 컴퓨터 시스템에서 데이터를 저장하기 위해 사용되는 모든 저장 공간을 의미한다. 여기에는 주 메모리(RAM), 보조 저장 장치(하드 드라이브, SSD), 캐시 메모리, 레지스터 등이 포함된다. 공간 자원은 프로그램 실행 중 필요한 데이터를 저장하고, 처리 결
SQL(Structured Query Language)은 데이터베이스 관리 시스템(DBMS)에서 데이터를 관리하고 조작하기 위한 표준 프로그래밍 언어이다. SQL은 데이터베이스에 저장된 데이터를 삽입, 조회, 업데이트, 삭제하는 등 다양한 작업을 수행할 수 있도록 한다
Join 연산은 SQL에서 두 개 이상의 테이블을 결합하여 하나의 결과 집합을 만드는 연산이다. 데이터베이스에서 여러 테이블에 분산된 데이터를 통합하고 관련된 정보를 조회하기 위해 사용된다. Join 연산을 통해 테이블 간의 관계를 정의하고, 복잡한 쿼리를 작성할 수
SUM 함수는 지정된 컬럼의 값을 모두 더한 합계를 반환합니다.예시:employees 테이블에서 salary 컬럼의 합계를 계산하여 total_salary로 반환하는 SQL 문이다.AVG 함수는 지정된 컬럼의 값을 모두 더한 후, 그 값의 개수로 나눈 평균을 반환합니다
REPLACEREPLACE 함수는 문자열 내에서 특정 부분을 다른 문자열로 대체하는 데 사용된다.예시:Hello World 문자열에서 World를 SQL로 대체하여 Hello SQL을 반환한다.SUBSTRINGSUBSTRING 함수는 문자열의 일부분을 추출하는 데 사용
전반적으로 정답을 다 얘기했지만 디테일이 부족했고 생각이 정리가 안되 답을 전달하는데 많이 부족했다 느껴 연습이여서 다행이였던 기술면접이였다.배열(Array)과 링크드 리스트(Linked List)는 데이터 저장을 위한 대표적인 자료구조이다. 하지만 이 두 자료구조는

프로토콜:웹 브라우저가 웹 서버와 통신할 때 사용하는 규칙을 정의하는 부분이다. 예를 들어, HTTP, HTTPS, FTP 등이 있다.도메인:웹 사이트의 주소를 나타내는 부분으로, 사용자가 웹 사이트를 방문할 때 입력하는 URL의 주요 부분이다. 예를 들어, www.e
웹 서버 엔진은 웹 서버의 핵심 구성 요소로, 클라이언트(사용자 또는 브라우저)로부터의 HTTP 요청을 처리하고, 그에 따른 응답을 생성하여 클라이언트에게 반환하는 역할을 한다. 웹 서버 엔진은 웹 애플리케이션의 성능, 확장성, 안정성에 큰 영향을 미치는 중요한 컴포넌

ERD(Entity-Relationship Diagram) 다이어그램은 데이터베이스의 구조를 시각적으로 표현한 다이어그램으로, 엔티티(Entity)와 엔티티 간의 관계(Relationship)를 보여준다. 이는 데이터 간의 관계를 명확히 이해하고 표현하는 데 사용된다.
HTTP 캐시는 웹 브라우저나 프록시 서버에 리소스를 저장하여, 동일한 리소스에 대한 반복적인 요청 시 서버로부터 리소스를 다시 다운로드하지 않고 캐시된 데이터를 사용하는 기술이다. 이는 웹 페이지 로딩 속도를 크게 향상시키고, 서버 부하를 줄이며, 네트워크 비용을 절
HTTP Method는 웹 클라이언트와 서버 간의 요청과 응답을 정의하는 방식이다. 주로 GET과 POST가 사용되며, 각각의 역할과 사용 사례가 다르다.GET 메소드는 클라이언트가 서버로부터 리소스를 요청할 때 사용된다. 주로 데이터를 조회하거나, 특정 페이지를 요청
프로그래밍 언어는 크게 스크립트 언어와 컴파일 언어로 나뉜다. 두 가지 방식은 코드가 실행되는 방식에서 큰 차이를 보인다.스크립트 언어는 인터프리터(Interpreter)라는 프로그램을 통해 한 줄씩 코드가 해석되고 즉시 실행되는 언어를 말한다. 즉, 작성된 코드가 별
모델 관계는 Django에서 데이터베이스 내의 다양한 모델들 간의 연결을 정의하는 방법이다. Django에서는 여러 유형의 모델 간 관계를 정의할 수 있다:일대일 관계는 각 모델 인스턴스가 다른 모델의 단 하나의 인스턴스와만 연결될 때 사용된다. 이는 데이터베이스에서
ORM(Object Relational Mapping)은 객체 지향 프로그램에서 사용하는 객체들을 관계형 데이터베이스의 테이블에 매핑해주는 기술이다. 이를 통해 개발자는 SQL 쿼리를 직접 작성하지 않고도, 데이터베이스에 데이터를 삽입하거나, 조회하고, 수정하거나 삭제
Django를 사용하여 웹 애플리케이션을 개발할 때, 사용자가 원하는 기준으로 데이터를 정렬하는 기능은 매우 중요하다. 이번 블로그에서는 Django에서 날짜, 좋아요 수, 댓글 수에 따라 데이터를 정렬하는 방법을 설명한다.정렬을 위한 URL 설정:정렬 기능을 구현하려
먼저, views.py 파일에서 사용자가 좋아요 버튼을 클릭할 때 실행되는 로직을 추가한다.이 코드에서는 사용자가 이미 좋아요를 누른 게시글에 대해 다시 클릭하면 좋아요가 취소되고, 그렇지 않으면 새로운 좋아요로 추가된다. 다음으로, 좋아요 버튼을 사용자에게 더 잘 보
Django에서 조회, 등록, 수정, 삭제 기능 구현하기Django 웹 애플리케이션에서 게시글의 조회, 등록, 수정, 삭제(CRUD) 기능을 구현하는 방법을 다룬다. CRUD 기능은 웹 애플리케이션의 기본 요소로, 사용자가 게시글을 작성하고 관리할 수 있게 한다.조회
URL(Uniform Resource Locator)은 웹에서 특정 리소스를 찾기 위한 주소 역할을 한다. 웹 페이지를 요청하거나 리소스를 가져오기 위해 브라우저나 서버가 사용한다.프로토콜은 브라우저와 서버 간의 통신 방식을 정의하는 부분이다. 가장 흔히 사용되는 프로
JSON (JavaScript Object Notation)은 데이터를 저장하고 교환하는 데 사용되는 가볍고 인간 친화적인 데이터 형식이다. 웹 애플리케이션에서 서버와 클라이언트 간의 데이터 교환 시 주로 사용된다. JSON Response는 서버가 클라이언트의 요청에
Django REST Framework (DRF)는 Django를 기반으로 하는 강력한 웹 API 구축을 위한 도구이다. DRF를 사용하면 Django에서 RESTful 웹 서비스를 쉽게 개발할 수 있다. Django REST Framework (DRF)는 다음과 같은
이번에 장고 기초 이해도 테스트를 보았는데 정답이 아쉬웠던 질문들을 오답 노트를 통해 다시 복습해 보았다. settings.py 파일은 Django 프로젝트의 전반적인 설정을 관리하는 곳이다. 이 파일은 프로젝트의 환경 구성, 데이터베이스 설정, 타임존, 언어
JWT (JSON Web Token)는 JSON 포맷을 사용하여 클레임(Claim)을 저장하고 전송하는 방법이다. 주로 인증과 권한 부여를 목적으로 사용된다. 클라이언트와 서버 간에 정보를 안전하게 전달하기 위해 JWT를 사용하는 것이 일반적이다.JWT는 세 부분으로
Redis란 무엇인가? Redis(Remote Dictionary Server)는 오픈 소스의 인메모리 데이터 저장소로 인메모리 기반의 키-값(key-value) 저장소이다. 데이터를 메모리에 저장하기 때문에, 기존의 디스크 기반 데이터베이스보다 훨씬 빠르게 데이터를
프로젝트에서 로그인을 하면 토큰이 발급되는 것을 구현했어야 됬다. 그래서 Simple JWT와 같은 패키지를 사용해 토큰 기반 인증을 쉽게 구현하기로 했다.토큰 기반 인증을 구현하기 위해서는 djangorestframework-simplejwt 패키지를 설치해야 한다.
게시물 추가 api를 만드는 도중에 이미지도 필수로 추가를 해야 되는 것을 깨닫았다. 나중에 까먹을 것을 대비해 노트를 하기로 했다.게시물에 이미지를 첨부하려면 먼저 모델에 ImageField를 추가해야 한다. ImageField는 이미지 파일을 저장하고 업로드할 수
게시글에 카테고리를 추가하는 기능을 구현했다. 카테고리는 게시글을 분류하고, 사용자들이 자신의 게시물에 적절한 카테고리를 선택할 수 있도록 하는 중요한 기능이다. 카테고리 추가는 관리자만 가능하게 설정하고, 일반 사용자는 이미 존재하는 카테고리 중에서 선택할 수 있도록
Nginx는 웹 서버 소프트웨어로, 주로 정적 파일(이미지, CSS, JavaScript 등)을 처리하고, 동적 요청을 애플리케이션 서버로 전달하는 역할을 한다. 예를 들어, Django와 같은 웹 애플리케이션은 보통 정적 파일을 처리하지 않기 때문에, Nginx를 사
AWS Management Console에 접속하여 로그인한다.상단 검색창에서 EC2를 입력하고, EC2 대시보드로 이동한다.인스턴스 시작 버튼을 클릭한다.운영체제는 Ubuntu 20.04 LTS 또는 Amazon Linux 2를 선택한다. (이 예시에서는 Ubuntu
EC2 서버에 접속한 후, Django 프로젝트를 실행하기 위해 Python3, pip 및 venv(가상환경)을 설치한다.Django 프로젝트를 위한 가상 환경을 생성하고 활성화한다.Git을 사용해 로컬에서 개발한 Django 프로젝트를 EC2 서버로 클론한다.requ
커밋 메시지의 목적커밋 메시지는 코드 변경 사항을 명확하게 기록하여 팀원들이 쉽게 이해할 수 있도록 하는 것이 중요하다. 좋은 커밋 메시지는 코드의 변경 내용과 이유를 쉽게 파악할 수 있게 해준다. 주로 다음과 같은 목적으로 사용된다:변경 사항의 명확한 설명변경 이유
개발 과정에서는 많은 단계와 흐름이 얽혀 있어 설명이 복잡해질 수 있다. 이때 플로우차트를 활용하면 복잡한 논리 흐름을 단순화하여 시각적으로 표현할 수 있다. 이를 통해 팀원들 모두가 동일한 이해를 할 수 있게 되며, 실수나 누락된 부분을 쉽게 발견할 수 있다.플로우차
DevOps는 개발(Development)과 운영(Operations)을 결합한 개념으로, 두 팀이 협력해 더 빠르고 안정적인 소프트웨어 배포를 목표로 하는 방법론이자 문화다. 이를 통해 코드 작성부터 배포, 유지보수까지 전체 소프트웨어 라이프사이클을 통합적으로 관리한
Dockerfile은 Docker 이미지를 빌드하기 위한 스크립트 파일이다. 이 파일에 작성된 명령어에 따라 이미지가 만들어지며, 이후 컨테이너가 해당 이미지를 기반으로 실행된다. Dockerfile은 애플리케이션의 환경 설정과 설치 과정을 자동화해 준다.FROM py
Ubuntu 22.04에서 Docker를 사용해 PostgreSQL 컨테이너를 실행할 때 발생할 수 있는 "pg_notify 디렉터리를 열 수 없습니다" 오류를 해결하는 방법에 대해 알아보겠다.Ubuntu 22.04 환경에서 Docker로 PostgreSQL 컨테이너를
Django에서 두 개의 데이터베이스 (SQLite와 PostgreSQL)를 연결하고 데이터베이스 라우터(MultiDBRouter)를 사용하여 데이터베이스 설정했다.Django의 설정 파일인 settings.py에서 여러 데이터베이스를 정의할 수 있다. 이번 예제에서는