백엔드 개발을 시작하기 위해 필요한 데베 서버를 먼저 생성하도록 한다. RDS를 이용해 데이터베이스를 관리하기로 하였고, MySQL을 사용한다. RDS생성AWS에 회원가입을 완료한 상태로 시작한다. AWS 콘솔의 서비스에서 RDS로 들어간다. 이때 상단의 region을 서울로 바꿔야 한다. 이제 데이터베이스 생성을 눌러 RDS인스턴스 생성을 시작한다.데이터베이스 생성 과정표준 생성을 선택한다. 우리는 MySQL을 사용할 예정이므로 MySQL선택.바로 아래 엔진 버전을 확인하자 우리는 프리티어를 사용할 것이므로 프리티어 선택. 사용할 RDS 인스턴스의 이름을 입력하고, 마스터 사용자를 설정한다. 마스터 사용자 이름과 암호는 꼭 잊지말자!! 프리티어에서 스토리지는 20GiB까지 쓸 수 있다. 아래에서 퍼..
분류 전체보기
해당 포스팅에서는 캡스톤 디자인 프로젝트 Threepark team 에서 개발한 fairy-Tairy 서비스의 개발 과정을 기록한 포스팅을 모아 볼 수 있도록 작성되었다. 이번 프로젝트에서 나는 백엔드/AI 서버 세팅과 DB/API설계,백엔드 구현을 맡아 개발했다. 또한 프론트에서 인증과 커뮤니티, 팔로잉 기능과 디자인 일부, 도메인 연결을 담당했다. 다만 내가 django와 개발 전과정에 대해서 지식이 전무한 상태로 시작했기 때문에, 완성도가 떨어질 수 있음을 감안하고, 포스팅의 내용을 비판적으로 수용해야한다... 목차 & URL서비스 Brief 데이터베이스 서버 세팅 (아마존 AWS - RDS)RDS 생성 https://he-kate1130.tistory.com/84MySQL 연결 https://he..
Symbol Table symbol들에 대한 정보를 관리/운영하는데에 사용되는 자료구조를 symbol table이라고 한다. 심벌 테이블은 컴파일러에서 어휘,구문,의미를 분석하는데에서 각 명칭들의 정보를 얻고, 사용이 타당한지 검사하는데에 사용되고, 코드 생성 단계에서 명칭의 속성들을 이용해 올바른 코드를 생성할 수 있도록 한다.
형식 언어 컴파일러를 만들기 위해서는 언어에 대한 이해가 선행되어야 한다는 것을 지난 장에서 살펴보았다. 언어에 대해서 잘 이해하고, 체계적으로 전개하기 위해서는 "잘 정의된 언어"가 어떤것인지 알아야 한다. 이처럼 잘 정의된 언어를 형식 언어라고 부른다. 형식언어는 보통 문장의 집합으로 정의된다. 2장에서는 언어를 형식적으로 정의하고, 언어를 표현하는 방법으로 사용되는 문법을 정의한다. 형식 언어의 기본 개념 형식언어는 문장들의 집합으로 정의된다. Alphabet 알파벳은 문장을 이루는 기본 심볼(기호)들의 유한 집합이다. 형식언어이론에서는 알파벳이 보통 소문자 a, b, c... 과 같은 심벌들을 사용한다. String (sentence, word) 알파벳 T에 대한 스트링은 알파벳 T에 속하는 심벌..
오늘은 장고 REST Framework에서 swagger를 통해 API를 문서화 해보자. 먼저 drf-ysag에 대한 문서는 아래의 링크를 통해 이동할 수 있다. 상세한 정보를 원한다면 공식 문서를 활용하자. https://drf-yasg.readthedocs.io/en/stable/ drf-yasg — drf-yasg 1.21.7 documentation © Copyright 2018, Cristi V. Revision db42d356. drf-yasg.readthedocs.io install 가상환경을 활성화 하고 install 하자. pip install -U drf-yasg settings.py settings.py에 다음이 추가되어야 한다. INSTALLED_APPS = [ ... 'django..
데이터베이스 데이터베이스는 조직에 필요한 정보를 얻기 위해서 논리적으로 연관된 데이터들을 모아 구조적으로 통합해둔 것을 말한다. 즉 데이터베이스는 여러사람이 공용으로 사용하기 위해서 통합하고, 저장한 운영 데이터의 집합을 말한다. 데이터베이스 시스템(DBMS) 데이터베이스 시스템은 각 조직에서 사용하던 데이터를 통합하고 공유할 때 생기는 장점을 이용하는 시스템이다. 데이터베이스 시스템은 아래 세가지로 구성된다. DBMS: 사용자와 데이터베이스를 연결하는 소프트웨어 데이터베이스: 데이터를 모아둔 집합 데이터모델: 데이터 저장 기법 관용적으로 데이터베이스 시스템을 DBMS라 표현하기도 한다. 정보 처리 기술의 발전 현재까지 정보 처리 기술의 발정 양상 예시를 살펴보자. 시기 단계 정보통신 기술 특징 1970..
컴파일러를 만든다면 한땀한땀...직접 코드를 넣어야 하는걸까? N개의 언어를 사용할 수 있고, M개의 컴퓨터에서 동작하게 하려면 우리는 NxM개의 컴파일러를 작성해야 한다. 완전 무리..! 하지만 우리에게는 컴파일러 자동화 도구, 컴파일러 생성기가 있습니다. (컴파일러의 컴파일러) 컴파일러 생성기는 컴파일러의 전 과정이나 각 단계를 자동 생성하는 도구들을 말한다. 컴파일러 생성기 컴파일러 생성기는 목적 기계에 대한 기계 표현을 입력으로 받아서 하나의 컴파일러를 출력하게 된다. 이렇게 출력된 컴파일러는 소스 프로그램을 입력으로 받아 목적 기계의 코드로 번역하는 컴파일러이다. Lexical Analyser Generator 어휘 분석기 생성기는 어휘분석기를 자동생성하는 도구이다. 토큰에 대한 표현을 입력으로..
컴파일러는 고급 언어로 쓰인 프로그램을 어떤 특정 컴퓨터에서 직접 실행이 가능한 형태의 프로그램으로 번역해주는 컴퓨터 프로그램이다. 일반 컴파일러 구조 컴파일러의 일반적인 구조는 다음과 같이 생겼다. 크게 프론트 앤드와 백앤드로 나눌 수 있다 프론트앤드: 소스 언어에 의존하는 부분으로, 소스 프로그램을 분석하고, 중간 코드를 생성한다. 백엔드: 목적 기계에 의존하는 부분으로, 중간 코드를 특정 기계를 위한 목적 코드로 번역한다. 프론트앤드 프론트앤드는 언어에 의존하므로, 각 언어마다 하나씩 필요하다. 기계에 비하면 언어의 문법이 명확히 정의되어있기 때문에 프론트앤드는 잘 정립되어있는 부분이다. 프론트앤드의 기능에 대해 살펴보자면, 프론트앤드의 역할은 소스 프로그램을 읽어들이고, 어휘분석, 구문 분석을 통..