본문 바로가기
728x90
반응형

전체 글217

(Java) Javalin : DB(MySQL) 붙여보기 이번에는 fastify 프레임워크에 MySQL 을 붙여서 동작시켜보자. https://gauryan.tistory.com/241 을 참고하여 MySQL을 설치하기 바랍니다. 이제, mysql 을 이용해서 DB 서버에 접속해보자. mysql -u root -p 라고 입력하고, 비밀번호(test123)까지 입력해보자.일단 새로운 User를 하나 생성해봅시다.-- CREATE USER '아이디'@'%' IDENTIFIED BY '비밀번호';CREATE USER 'test_user'@'%' IDENTIFIED BY 'test123';자... 그러면... 이제 Database 를 생성해봅시다.-- CREATE DATABASE 디비이름;CREATE DATABASE test_db;test_user 가 test_db .. 2024. 12. 13.
fastify (3) : DB(MySQL) 붙여보기 이번에는 fastify 프레임워크에 MySQL 을 붙여서 동작시켜보자. https://gauryan.tistory.com/241 을 참고하여 MySQL을 설치하기 바랍니다. 이제, mysql 을 이용해서 DB 서버에 접속해보자. mysql -u root -p 라고 입력하고, 비밀번호(test123)까지 입력해보자.일단 새로운 User를 하나 생성해봅시다.-- CREATE USER '아이디'@'%' IDENTIFIED BY '비밀번호';CREATE USER 'test_user'@'%' IDENTIFIED BY 'test123';자... 그러면... 이제 Database 를 생성해봅시다.-- CREATE DATABASE 디비이름;CREATE DATABASE test_db;test_user 가 test_db .. 2024. 12. 10.
fastify (2) : 컨트롤러 확장 앞에서 간단하게 fastify 프로그램을 만들어보았는데,  이대로 작성을 하면, API가 늘어날 수록 main.js 파일 점점 내용이 많아지고 커질거에요. 그러면, 코드 유지보수에 문제가 있으니, API들을 분류를 해서 분리할 필요가 있습니다. 보통 컨트롤러(controller)라는 이름으로 분리를 합니다.  기존에 작성했던 코드에서 /test1 API가 이었는데, 이것을 별도의 컨트롤러로 분리를 해봅시다. C:\work\fapi 폴더 아래에 controller 폴더를 만듭니다.그리고, test1.js 도 만들어줍니다.// controller/test1.jsexport async function test1 (fastify, options) { fastify.get('/test1', async fun.. 2024. 12. 6.
fastify (1) : 시작해보기 우선, nodejs 가 설치되어 있어야겠지요. 저는 nvm 으로 nodejs 를 설치해놓은 상태이고, 버전은 v.20.17.0 입니다. 프로젝트 폴더를 만들자. C:\work\fapi 로 하겠습니다. 그리고, 해당 폴더에 들어가서 프로젝트를 초기화 합니다. npm init 을 실행합니다.모두 엔터를 입력을 해줍니다. 이 중에서 entry point 만 main.js 로 입력해줍니다. 그러면, package.json 파일이 생성됩니다.package.json 을 열어보면, 아래와 같습니다.npm install fastify 를 입력해서 fastify를 설치해줍니다. 설치가 완료되면, package.json 파일에 dependecies 항목이 새로 생기고, 그 안에 fastify 도 추가된 것을 확인할 수 있.. 2024. 12. 3.
파이썬 filter 함수를 알아보자 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 이라는 리스트에서 짝수만 뽑아낸 [2, 4, 6, 8, 10] 리스트를 만들려고 합니다. 어떻게 하면 될까요? 우선, for 구문을 이용해서 할 수 있겠지요?list_orig = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]list_result = []for num in list_orig: if num % 2 == 0: list_result.append(num)print(list_result) 이것을 filter 함수를 이용해서도 구현할 수 있는데요. 먼저 filter 함수는 어떤 형태로 사용하는지 봅시다.filter(조건함수, 순회가능한객체)조건함수는 걸러내기위한 조건을 담은 함수를 의미하고, 순회가능한객체는 리스트,.. 2024. 11. 29.
현 시점에서 Rust 언어를 배워야하는 이유 Rust 언어를 배워야하는 이유는 여러가지가 있다. 먼저, Rust 언의 장점을 알아보자. 안전한 메모리 관리로 보안취약성 줄임 (C/C++ 에 비해서)C/C++에 버금가능 강력한 성능편리한 패키지 관리자 제공 (Cargo, crates.io)여러 개발도구 지원 (IntelliJ, VS Code, Vim, Helix 등) 2015년부터 스택 오버플로우 설문조사에서 매년 가장 좋아하는 언어 중에 하나로 선정되고 있다.https://survey.stackoverflow.co/2023/#section-admired-and-desired-programming-scripting-and-markup-languages Windows, Linux, Android 아마존, 구글, 마이크로소프트, 페이스북, 모질라, 리눅.. 2024. 11. 27.
파이썬 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 .. 2024. 11. 26.
API 서버의 인증은 어떻게 하는가? 1. API 키 기반 인증클라이언트가 서버로부터 발급받은 고유한 API 키를 요청 헤더에 포함하여 요청을 보냅니다.서버는 해당 키를 확인하고 요청을 처리합니다.특징간단하고 설정이 쉬움.보안 수준이 낮음(키가 노출되면 악용 가능).주로 공공 API에서 사용.예시GET /resource HTTP/1.1Authorization: Bearer eyJhbGciOiJIUzI1NiIsIn... 2. JWT(JSON Web Token)서버에서 사용자 로그인 시 비밀 키로 JWT를 발급하고, 클라이언트는 이후 요청 시 이 토큰을 헤더에 포함하여 전달합니다.서버는 토큰을 검증하여 사용자를 인증합니다.특징Stateless 방식: 서버는 상태를 저장하지 않음.발급된 토큰은 클라이언트에서만 저장됨(주로 로컬 스토리지 또는 쿠키.. 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.. 2024. 11. 15.
728x90
반응형