Category(82)
-
[Algorithm] Sorting (Selection, insertion)
[스터디원 준비 자료] 알고리즘, 의사코드, 선형탐색 : cs50-2장 알고리즘,의사코드,선형탐색 버블 정렬 : Bubble Sort 합병 정렬 : 합병 정렬 이진 탐색 : https://www.icloud.com/iclouddrive/0q7RwpA9Y7oRVkF5f2Sq_BmtA 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 프로그램에서 데이터 가공시 오름차순, 내림차순 등의 정렬을 사용하는 경우가 많다 (가장 많이 사용되는 알고리즘 중 하나) 정렬은 알고리즘의 효율성을 쉽게 이해할 수 있기 때문에, 초반에 알고 가면 좋다 (일종의 공식처럼 사용되는 경우가 많기 때문에, 효율적인 정렬 알고리즘을 알고 있는 것이 중요) 선택 정렬 데이터가 무작위로 있을 때, 이 중 가장 작은 데이터를 선택해 가장 ..
2021.08.08 -
6. React (Hook)
내가 생각하는 핵심 키워드 : useState, useEffect, Callback function 추가 학습이 필요한 키워드 : life cycle (생명주기), Callback function Hook은 함수형 컴포넌트에서 클래스형 컴포넌트의 기능을 사용할 수 있게 해주는 기능이다 클래스형 컴포넌트의 React state, lifecycle features를 연동(hook into)될 수 있도록 도와준다 Hook을 사용하는 이유는 기존 React의 여러 문제점 때문 - 컴포넌트 사이에서 상태와 관련된 로직의 재사용이 어려운 점 - 복잡한 컴포넌트들은 이해하기가 어려운 점(가독성, 로직 등) - 클래스는 코드의 재사용성과 구성을 어렵게 만든 것 뿐만 아니라, this의 원리를 알아야만 했다 위 문제점들..
2021.08.07 -
5. React (Event)
이벤트는 사용자가 웹 브라우저에서 HTML 요소에 접근, 사용에 대한 사건의 발생을 의미한다 (또는 사용자가 아닌, 개발자의 의도에 따른 로직에 의해 발생될 수도 있다) 어떠한 방식이던 발생된 이벤트는 자바스크립트와 대응시킬 수 있다 HTML 요소 로딩, 사용자의 클릭(또는 더블클릭), 마우스 오버, 입력 등의 다양한 이벤트가 존재 이때, 이벤트 핸들러 함수로 다양한 로직을 처리하고 결과를 사용자에게 출력할 수 있다 (React 뿐만 아니라 다른 언어에서도 이벤트 핸들러 함수는 다양한 방식으로 활용되고 있다) [이벤트 핸들링 방법] React에서 이벤트 핸들링은 대표적으로 아래의 두 가지 방법이 존재한다 1. 핸들링 함수 선언 별도의 함수 선언 후 요소에 넘겨주는 방법 2. 익명 함수로 처리 이벤트 할당..
2021.08.06 -
7. Flask (logging)
로깅(loggin)은 프로그램이 작동할 때 발생하는 이벤트(기능)를 추적하는 행위다 문제를 파악하고 유지보수 작업에 사용되며, 로깅을 통해 발생한 에러를 추적할 수 있다 DEBUG < INFO < WARNING < ERROR < CRITICAL 오른쪽으로 갈수록 심각도가 크다, 레벨이 높다고 표현할 수 있다 (높은 레벨의 에러는 하위 레벨의 에러들을 인식하지 않게 된다) 기본 로거 레벨 세팅이 WARNING이기 때문에 설정 없이는 INFO, DEBUG 출력 불가 DEBUG : 상세한 정보, 굉장히 Low level이기 때문에 섬세하게 파악 INFO : 일반적인 정보 WARNING : INFO보단 사용자 입장에서 주의했으면 좋겠다고 생각하는 문제 (예상치 못한, 발생할 가능성이 있는 문제) ERROR : ..
2021.08.06 -
6. Flask (Authentication)
추가 공부 키워드 : 권한 (Authorization), session 인증 (Authentication) 클라이언트가 서버로부터 누구인지 확인하는 절차 - 회원가입 → 로그인, Database에 사용자 정보 입력 (Create) - 로그인 ─ ID / PW → 서버, Database의 정보와 입력정보 비교 (Read) - 로그아웃, 인증정보 파기 [쿠키] 클라이언트에 저장되는 Key: value가 들어 있는 데이터 사용자가 따로 요청하지 않아도, Request 시 자동으로 서버에서 전송 서버 ─ ( Cookie ) → 클라이언트 (자신의 컴퓨터, 웹 브라우저에 저장) [세션] 쿠키를 기반으로 하지만 서버 측에서 관리하는 데이터 클라이언트에 고유 ID를 부여하고 클라이언트에 맞는 서비스를 제공 서버에서 ..
2021.08.06 -
5. Flask (CRUD)
API 동작 원리 1. Client ─ [ HTTP request ] → API ─→ Server 클라이언트의 데이터, 요청 방식에 맞는 API가 요청을 확인 이후 Server는 함수 안에 정의된 동작을 수행 후 요청에 대한 응답을 리턴 2. Server ─ [ HTTP response ] → API ─→ Client 이때의 서버로부터의 응답은 Page, JSON 등의 데이터가 클라이언트에게 전달될 것이다 [CRUD 주요 기능] Create → 데이터 생성 : 저장 기능과 관련이 크다(생성된 데이터를 보관하기 위해서는 저장이 필수) Read → 데이터 조회 : 읽기 기능과 관련이 크다(오로지 조회만을 위한 읽기 기능) Update → 데이터 수정 Delete → 데이터 삭제 : 저장, 읽기 기능 둘 다 ..
2021.08.05 -
4. Flask (Blueprint, Jinja Template)
Blueprint 길어진 코드를 각 역할별로 나누어 모듈화, 수정 개발과 유지보수에 용이하도록 코드를 분류 / 관리 (API, app.route( )들을 관리한다고 생각하면 된다) App.py 서버 파일에 모든 API들이 모여있는 것은 좋지 않은 파일이다 API들을 서버 파일에 하나에 몰아놓으면 유지보수 측면에서 효율성이 떨어지고 가독성도 떨어진다 이를 Blueprint를 이용해 파일을 나누어서 분리 시킬 수 있다 서버 실행만을 위한 App.py, API들을 관리하기 편하도록 분리시키기 위한 API.py 두 개의 파일을 준비 [App.py] from API import bp 분리시킨 API.py에서 bp를 import app.register_blueprint(bp) Flask를 정의하고 있는 app에 b..
2021.08.05 -
3. Flask (HTTP Method)
내가 생각하는 핵심 키워드 HTTP Method (포스팅 후 링크 추가 예정) HTTP Method의 개념 [GET] 데이터를 URL 뒤에 ?와 함께 사용하여 전송하는 방식 일반적으로 인터넷에서 많이 사용되는 Method로 사용하기 편리하다 단, URL의 길이가 길어지며 전송되는 데이터의 모든 정보가 노출되기 때문에 보안에 매우 취약 (데이터의 길이 제한, 로그인 기능 등과 같은 요청에 대해 제약이 있다) 즉, 민감하지 않은 데이터라고 할 수 있는 범위 내에서는 유용하게 활용이 가능하다 [POST] HTTP 통신에는 Header, Body가 있는데 여기서 Body에 이라는 태그 양식이 들어간다 POST는 이 태그에 데이터를 넣어서 전송하는 방식으로 URL에 노출되지 않는다 URL에 노출되지 않기 때문에 ..
2021.08.05 -
2. Flask (JSON, URL)
내가 생각하는 핵심 키워드 JSON, render_template Flask URL 연결 app.route(), url을 만들어주는 통로 app.route()와 이어져 있는 함수를 사용해서 HTML, JSON 형식의 데이터를 전달 (Web에는 많은 형식이 존재하지만 JSON으로 많이 전달받고 있다) 1. JSON JavaScript Object Notation, JavaScript 구문에 기반을 두고 있지만 JS는 아니다(차이점 존재) JSON을 직접 호출하거나 인스턴스를 생성할 수는 없고, 두 개의 메서드(?)를 제외하면 자신만의 흥미로운 기능은 없다고 한다 (추후 공부) Javascript 객체 리터럴 문법을 따르는 문자열로 js의 데이터 타입 + 다른 객체를 포함한다 이 같은 방식으로 데이터 계층을..
2021.08.05 -
1. Flask (Prologue)
Web의 동작 과정 원하는 정보에 대한 요청과 응답은 규칙 없이 이루어지지 않는다 Client : 미리 약속한 규칙을 통해 요청 Server : 정해진 형태의 데이터로 응답 구글, 네이버와 같은 각 페이지의 접속 주소는 미리 약속된 주소(API 주소) 약속되어있는 주소에 미리 약속된 방법으로 요청, 응답을 주고받으며 해당 페이지를 열람 이때, 정해진 방식(미리 약속된 방법)으로 데이터의 통로 역할을 하는 것이 API Framework 결과물을 만들기 위해 제공되는 틀, 미리 작성되어 있는 함수 (라이브러리) 이상의 기능을 제공 1. Flask Python을 사용해서 웹 서버를 만들 수 있게 도와주는 Web Framework 즉, 웹 서버를 만들기 위해 제공되는 틀(함수 이상의 기능을 제공하는)이다 Fla..
2021.08.05