분류 전체보기214 파이썬 map 함수를 알아보자 리스트를 [1, 2, 3, 4, 5] --> [10, 20, 30, 40, 50] 과 같이 변환하려면 어떻게 할까? 먼저, 생각나는 것은 for 문을 사용해볼 수 있을 것이다.list_orig = [1, 2, 3, 4, 5]list_result = []for num in list_orig: list_result.append(num * 10)print(list_result)이것을 map 함수로도 구현할 수 있는데, map 함수의 형식을 먼저 살펴보자.map(조작함수, 순회가능한객체)조작함수 부분은 위의 for 구문에서 num * 10 의 기능을 해주는 함수이고, 순회가능한객체는 리스트, 튜플 등이 해당된다.일단 조작함수부터 구현해보자.def mul_ten(num): return num * 10 .. 프로그래밍/Python 2024. 11. 26. API 서버의 인증은 어떻게 하는가? 1. API 키 기반 인증클라이언트가 서버로부터 발급받은 고유한 API 키를 요청 헤더에 포함하여 요청을 보냅니다.서버는 해당 키를 확인하고 요청을 처리합니다.특징간단하고 설정이 쉬움.보안 수준이 낮음(키가 노출되면 악용 가능).주로 공공 API에서 사용.예시GET /resource HTTP/1.1Authorization: Bearer eyJhbGciOiJIUzI1NiIsIn... 2. JWT(JSON Web Token)서버에서 사용자 로그인 시 비밀 키로 JWT를 발급하고, 클라이언트는 이후 요청 시 이 토큰을 헤더에 포함하여 전달합니다.서버는 토큰을 검증하여 사용자를 인증합니다.특징Stateless 방식: 서버는 상태를 저장하지 않음.발급된 토큰은 클라이언트에서만 저장됨(주로 로컬 스토리지 또는 쿠키.. ETC (IT) 2024. 11. 26. 파이썬 lambda 함수 lamda 함수란, 한줄짜리 짧은 이름없는(익명) 함수 일반적인 함수의 사용예def add(x, y): return x + yprint(add(10,20))# 파이썬에서 함수는 객체이며, 변수에 저장이 될 수 있다.add2 = addprint(add2(10,20)) lambda 함수 기본형태lambda 인자: 리턴값 사용예result = (lambda x, y: x + y)(10, 20)print(result) # 람다 함수를 변수에 넣는다.add3 = lambda x, y: x + yprint(add3(10,20)) 이런식으로 리스트에도 넣을 수 있다. 이것은 일반 함수도 가능한 일이다.lambda_list = [lambda x: x+10, lambda x:x+100]print(lambda_lis.. 프로그래밍/Python 2024. 11. 15. Rust 시작해보기 (hello world 만들어보기) 이제, 첫번째 프로그램 hello world 를 만들어보자. 적당한 폴더에 main.rs 파일을 만들어보자.fn main() { println!("안녕, 세상아 ~!");}그리고, 터미널에서 rustc main.rs 라고 입력해서 컴파일해본다. 그리고 디렉토리를 확인해보면, main.exe 라는 실행파일이 생긴 것을 확인할 수 있다.main.exe 를 실행해보면 아래처럼 잘 나올것이다. 성공 ~!!!그런데, 파일도 많아지고, 여러가지 라이브러리도 사용하려면 이렇게 해서는 할 일이 많아진다. 그래서 Rust에서는 cargo 라고 하는 빌드툴을 제공한다. 일단, cargo 의 버전부터 확인해보자.cargo 를 이용해서 프로젝트를 생성할 수 있다. cargo new 프로젝트명 으로 하면되고, 일단 car.. 프로그래밍/Rust 2024. 11. 12. Rust 시작해보기 (rustup 설치) https://www.rust-lang.org/ 에 방문해보자. Rust 를 설치를 하려면, Install 메뉴를 선택한다.그러면, 위와 같이 나오는데, OS가 Linux 인경우에는 화면의 밑부분에 curl 을 이용해서 설치하면 간단하게 끝난다. 그런데, Windows 의 경우에는 Visual Studio C++ Build tools 를 다운로드/설치를 하고, rustup-init.exe 파일을 다운로드 하여 설치해야 한다. 먼저, Visual Studio C++ Build tools 을 클릭해서 설치하자.다운로드 버튼을 클릭하면, vs_BuildTools.exe 파일을 얻게 될 것이다. 이것을 또 실행해보자.위와 같은 화면이 나오면, "C++를 사용한 데스크톱 개발" 항목을 선택하고, "설치" 버튼을.. 프로그래밍/Rust 2024. 11. 8. 파이썬 타입 힌트 알아보기 다들 알고 있는 것처럼, 파이썬은 동적 타입 언어이다. 이 것은 변수의 타입을 지정하지 않고, 모든 타입의 데이터를 넣을 수 있다는 말이다. 반면에 Java 와 같은 정적 타입 언어는 변수 선언시에 타입을 반드시 지정하고 해당 타입의 데이터만 넣을 수 있는데, 만약, 다른 타입의 데이터를 넣게 되면, IDE 등에서 에러표시를 해줄 것이며, 컴파일할 때에도 에러를 뿜어내고 컴파일 실패하게 된다.public class Hello { public static void main(String[] args) { int num; // num = 10; num = "Hello Java"; System.out.println(num); }} 반면에, 파이썬은 다.. 프로그래밍/Python 2024. 11. 5. [ ... for ... if ... ] 파이썬 리스트 내포 구문 (List comprehension) 리스트 내포 (list comprehension) 은 짧은 코드로 원하는 리스트를 만들어주는 문법이다. 잘~ 사용하면 유용하긴 한데, 이해가 안되면 오히려 가독성이 떨어지는 문제가 있다. 팀원들의 이해도에 맞추어서 적절하게 사용하길 바란다. 첫번째 경우를 살펴보도록 하자.# result = [10, 20, 30, 40, 50]result = []for i in range(1, 5+1): result.append(i*10)print(result)result = [i*10 for i range(1, 5+1)]print(result)이제, 조건을 넣어보자.# result = [20, 40]result = []for i in range(1, 5+1): if i % 2 == 0: resul.. 프로그래밍/Python 2024. 11. 1. (MySQL) Windows에 MySQL 8.4 설치해서 사용해보기 https://dev.mysql.com/downloads/mysql/ 에 클릭해서 들어가면 여러가지 버전의 MySQL을 다운로드 받을 수 있다. 이 중에서 8.4.2 LTS 버전을 다운로드 하여, 설치프로그램으로 설치하면 됩니다.체크박스에 체크를 해주고 다음으로 넘어간다.그냥, Complete 를 선택하고 Next 를 클릭한다.비밀번호는 test123 으로 하겠다.공부를 위한 Sample DB 도 체크해주자. 그리고, Finish 누르면, 설치 완료.서비스에도 등록되어서, 자동으로 서버가 실행이 된다. 우리는 커맨드툴을 주로 사용할 것이라서 mysql 명령어로 로그인해봅시다. 그런데, mysql.exe 가 있는 폴더가 PATH 설정이 되어 있지 않아서 당장에는 사용할 수 없다. 일단 PATH 설정부터 하.. DBMS/MySQL 2024. 10. 22. FastAPI (3) : DB(PostgreSQL) 붙여보기 이번에는 FastAPI 프레임워크에 PostgreSQL 을 붙여서 동작시켜보자. 우선, scoop 을 이용해서 PostgreSQL을 설치해준다. scoop install postgresql 을 실행한다.pg_ctl start 를 입력해서 PostgreSQL을 기동합니다.psql -U postgres 를 입력해서 PostgreSQL에 관리자로 로그인합니다.다음처럼 새로운 사용자 계정을 생성합니다. 사용자 이름과 비밀번호는 원하는 것으로 설정하면 되겠습니다.그리고, Database 를 생성합니다. 데이터베이스 이름은 test_db 로 하였고, 소유주는 test_user 로 하였습니다.\q 로 PostgreSQL에서 빠져나와서 새로 새성한 사용자로 로그인해봅니다.새로운 테스트용 테이블도 생성해봅니다.CREAT.. 프로그래밍/Python 2024. 10. 18. FastAPI (2) : 컨트롤러 확장하기 앞에서 간단하게 FastAPI 프로그램을 만들어보았는데, 이대로 작성을 하면, API가 늘어날 수록 main.py 파일 점점 내용이 많아지고 커질거에요. 그러면, 코드 유지보수에 문제가 있으니, API들을 분류를 해서 분리할 필요가 있습니다. 보통 컨트롤러(controller)라는 이름으로 분리를 합니다. FastAPI 에서는 이것을 라우터(router)라고 표현합니다. 저는 router 라는 이름보다는 controller 를 선호합니다. 기존에 작성했던 코드에서 /items API가 이었는데, 이것을 별도의 컨트롤러로 분리를 해봅시다. C:\work\fapi 폴더 아래에 controller 폴더를 만듭니다.그리고, 비어있는 __init__.py 파일을 만들어주고, items.py 도 만들어줍니다.# .. 프로그래밍/Python 2024. 10. 15. FastAPI (1) : 시작해보기 Python 에는 유명한 웹프레임워크가 3개 있어요. Django, Flask, FastAPI 입니다. 이 중에서 골라서 취향에 맞추어서 사용하면 되는데요. 저는 이 중에서 FastAPI 가 제 취향에 맞습니다. FastAPI 가 이름에서도 알 수 있지만, 이 중에서 성능이 2배나 좋다고 합니다. 그리고, 저는 API서버로만 사용할 것이라서 좀 더 간결하게 작성할 수 있는 FastAPI가 좋습니다. 이제, 시작해볼까요. 먼저, C:\work\fapi 라는 이름으로 작업폴더를 만들어줍니다. 해당 폴더에서 venv 로 가상환경을 만들고, 가상환경을 활성화해주세요.fastapi 모듈을 설치합니다.설치한 후에 pip list 로 설치된 모듈을 확인해봅니다. 대략 이정도의 모듈들이 설치되네요.uvicorn 도 설.. 프로그래밍/Python 2024. 10. 11. .py(파이썬파일)을 .exe(실행파일)로 변환하기 (feat. PyInstaller) 파이썬으로 만든 프로그램을 다른 사람에게 전달해서 실행을 하려면, 그 사람의 PC에도 파이썬이 설치되어 있어야 하는 번거러움이 있다. 이 때문에, 파이썬 프로그램을 일반 실행파일(.exe)로 변환해서 건네주면 사용하는데 큰 문제가 없을 것이다. 파이썬 패키지에는 이런 변환 프로그램이 있는데, 바로 PyInstaller 이다. pip install pyinstaller 를 입력하면 설치가 되서 바로 사용할 수 있다. 첫 번째 프로그램을 만들어보자. 필자는 C:\work\proj1 폴더를 만들 것이며, 이 안에 .venv 로 가상환경도 만든다. 가상환경은 python -m venv .venv 로 만들 수 있다. 그리고, .venv\Scripts\activate 로 가상환경을 활성화 한 후에, pip inst.. 프로그래밍/Python 2024. 9. 21. 이전 1 2 3 4 5 ··· 18 다음