기타 공부 35

CD/CI 세션 개념정리

CD/CI란 CI: Continuous Integration, 지속적인 코드 통합 CD: Continuous Delevery/Deploy, 지속적이고 자동화된 배포 CD/CI의 과정 CI는 개발 과정에 관여하는 것이고, CD는 배포 과정에 관여하는 것이다. 그 모습을 간단하게 설명하면 다음과 같다. CI의 모습은 이렇다. 개발자가 코드의 변경사항을 PUSH하면, 바뀐 버전의 코드를 빌드해보고 문제가 있는지 테스트가 수행된다. 발견된 문제를 개발자가 고치고 나면, 다시 빌드와 테스트를 한다. CD는 말 그대로 배포를 자동화하는 것이다. 개발자가 코드를 PUSH하면, CD/CI 툴 프로그램이 지정된 저장소에 코드 파일을, 지정된 배포 주체에게는 배포 요청을 보낸다. 이때 배포 주체가 저장소에 접근할 수 있도..

기타 공부 2023.06.04

9. 삭제

삭제 기능을 구현하는 강의이다. read 페이지에서 삭제 버튼을 누르면 해당 페이지에서 보고 있던 데이터가 데이터베이스에서 삭제되고 사용자는 메인 화면으로 이동한다. 강의를 참고하여 아래와 같이 코드를 작성했다. from flask import Flask, request, redirect app = Flask(__name__) # 새 데이터가 추가될 때 사용될 아이디를 저장하는 전역변수 nextId = 4 # 데이터베이스 역할을 할 리스트 topics = [ {'id': 1, 'title': 'A', 'content': 'This is page A.'}, {'id': 2, 'title': 'B', 'content': 'This is page B.'}, {'id': 3, 'title': 'C', 'cont..

8. 수정

기존의 데이터를 수정하는 기능을 추가하는 회차이다. 강의 내용을 참고하여, 아래의 코드를 작성하였다. from flask import Flask, request, redirect app = Flask(__name__) # 새 데이터가 추가될 때 사용될 아이디를 저장하는 전역변수 nextId = 4 # 데이터베이스 역할을 할 리스트 topics = [ {'id': 1, 'title': 'A', 'content': 'This is page A.'}, {'id': 2, 'title': 'B', 'content': 'This is page B.'}, {'id': 3, 'title': 'C', 'content': 'This is page C.'} ] # 중복되는 부분을 함수화함 def template(conten..

7. 쓰기

7.1 회차에서는 웹에서 주고받는 요청의 종류, 그 중에서도 주로 GET과 POST에 대해 설명해주신다. 예전에 공부했던 내용을 되짚어볼 수 있어 좋았다. 7.2 회차에서는 GET만 다루었던 지금까지의 실습과 다르게 코드에 POST를 적용하여, 우리 웹사이트에 접속한 사용자가 데이터베이스에 데이터를 등록할 수 있게 만든다. 노트정리에 적을 만 한 내용이 딱히 없다. 7.2 회차에서 코드를 짜며 알게 된 꿀팁들만 기억하면 될 것 같다. 세 가지가 있었다. 새로 추가되는 데이터의 id를 전역변수를 통해 관리할 수 있음. 변수의 값을 이어붙여 url 문자열을 만들 때에는 변수를 문자열로 변환시키는 것을 잊지 말 것. @app.route() 에서 methods를 지정해주지 않으면 기본적으로 GET만 받도록 설정..

6. 읽기

6회차 강의에서 해야 할 내용을 5회차 강의 때 앞질러 해버렸다... 머쓱하군. 그래서 이번 회차에서는 5회차 때 완성했던 코드를 강사님의 코드와 유사하게 수정해보았다. 내가 5회차 때 썼던 코드와 강사님이 이번 강의에서 쓴 코드의 주된 차이점은 다음과 같다. 리스트의 조회 방법: 나는 인덱스로, 강사님은 for문과 if문으로 조회함. 네비게이터가 모든 화면에 표시됨: 나는 read 화면들에 간단한 문자열 하나만 표시되게 하였지만, 강사님은 메인 화면에 표시되었던 네비게이터가 모든 read 화면의 상단에 표시되게 함. 리턴값의 차이: 나는 화면 표시 함수가 단순한 문자열을 리턴하게 만들었지만, 강사님은 html 코드를 리턴함. 형 변환의 시점: URL에서 받아오는 id는 기본적으로 문자열임. 나는 그 문..

5. 홈페이지 구현

간단한 홈페이지를 만들어보는 회차이다. 코드 강의에 나온 코드를 수정하여 완성한 코드는 아래와 같다. from flask import Flask app = Flask(__name__) topics = [ {'id': 1, 'title': 'A', 'content': 'This is page A.'}, {'id': 2, 'title': 'B', 'content': 'This is page B.'}, {'id': 3, 'title': 'C', 'content': 'This is page C.'} ] # 메인 페이지 @app.route('/') def index(): str= '' # html 코드를 담을 문자열 # for문을 사용하여 str의 내용을 만들기 for topic in topics: str = s..

4. 라우팅

아래와 같은 플라스크 코드가 있다. index() 라는 함수의 위에 @app.route() 라는 것이 붙어있다. 이놈의 역할은 무엇일까? 바로 라우팅이다. 코드를 실행시켰을 때 주어지는 이 URL의 뒤에다가 route()의 괄호 안에 있는 URL을 붙이면 바로 아래에 있는 함수가 실행되는 것이다. URL에서 가장 뒤에 붙은 / 문자는 생략 가능하기 때문에, @app.route('/')는 http://127.0.0.1:5000 에 들어갔을 때 실행될 함수를 지정, 즉 메인페이지의 내용을 결정한다. http://127.0.0.1:5000 에 들어가보자. index() 함수에 적힌 대로 Welcome이 표시된다. 이렇게 어떤 URL에 어떤 내용이 연결될지 정해주는 것이 라우팅이다. 강의 영상에서 보여준 다른 ..

Visual Studio Code에 깃을 연결하는 방법

아예 새로운 프로젝트를 시작할 때 Visual Studio Code에서 처음 깃에 연결하는 방법을 설명하는 게시글이다. Visual Studio Code에서 미리 깃허브 로그인이 되어있다는 가정 하에 작성하였다. 로그인을 어떻게 하는지 모르겠다면... 걱정하지 말고 그냥 따라해라. 로그인이 안 되어있을 경우 진행중에 로그인을 해달라는 메시지가 뜰 테니 그 때 하면 된다. 가장 먼저, 프로젝트 폴더를 Visual Studio Code에서 열어준다. 아래와 같이 .gitignore와 index.py가 들어있는 1022라는 폴더를 Visual Studio Code에서 열었다. 깃 최초 연결에는 두 가지 방법이 있다. 1. 깃허브에서 리모트 리포지토리를 미리 만들어둔 다음에 거기에 연결하는 방식 2. Visua..

기타 공부/IDE 2022.10.22

2. 나의 컴퓨터에 개발환경셋팅

수업 소개 회차의 노트정리는 건너뛰고 2부터 적겠다. 플레이리스트에는 2.1 회차와 2.2 회차가 있다. 2.1 회차는 로컬에서 Visual Studio Code를 사용해 개발환경을 세팅하는 내용이다. 2.1을 보고 따라하다가 문제가 생겨 개발환경 세팅에 실패한 사람들이 많을 것이라 한다. 그 사람들이 온라인 툴을 사용해 개발환경을 세팅할 수 있도록 알려주는 회차가 2.2이다. 2.1에서 문제 없이 세팅을 완료한 사람은 2.2를 들을 필요가 없다. 그러므로 나는 2.1 강의의 노트정리만 남기겠다. 이 강의에서의 Flask 개발은 Visual Studio Code로 진행된다. 이번 회차에서는 플라스크를 설치하고 (깃에 연결하고) 간단한 Flask 파일을 만들어 실행을 시켜본다. 1. 플라스크 설치 Term..