Framework23 FastAPI (2) : 컨트롤러 확장하기 앞에서 간단하게 FastAPI 프로그램을 만들어보았는데, 이대로 작성을 하면, API가 늘어날 수록 main.py 파일 점점 내용이 많아지고 커질거에요. 그러면, 코드 유지보수에 문제가 있으니, API들을 분류를 해서 분리할 필요가 있습니다. 보통 컨트롤러(controller)라는 이름으로 분리를 합니다. FastAPI 에서는 이것을 라우터(router)라고 표현합니다. 저는 router 라는 이름보다는 controller 를 선호합니다. 기존에 작성했던 코드에서 /items API가 이었는데, 이것을 별도의 컨트롤러로 분리를 해봅시다. C:\work\fapi 폴더 아래에 controller 폴더를 만듭니다.그리고, 비어있는 __init__.py 파일을 만들어주고, items.py 도 만들어줍니다.# .. Framework (Backend)/FastAPI 2024. 10. 15. FastAPI (1) : 시작해보기 Python 에는 유명한 웹프레임워크가 3개 있어요. Django, Flask, FastAPI 입니다. 이 중에서 골라서 취향에 맞추어서 사용하면 되는데요. 저는 이 중에서 FastAPI 가 제 취향에 맞습니다. FastAPI 가 이름에서도 알 수 있지만, 이 중에서 성능이 2배나 좋다고 합니다. 그리고, 저는 API서버로만 사용할 것이라서 좀 더 간결하게 작성할 수 있는 FastAPI가 좋습니다. 이제, 시작해볼까요. 먼저, C:\work\fapi 라는 이름으로 작업폴더를 만들어줍니다. 해당 폴더에서 venv 로 가상환경을 만들고, 가상환경을 활성화해주세요.fastapi 모듈을 설치합니다.설치한 후에 pip list 로 설치된 모듈을 확인해봅니다. 대략 이정도의 모듈들이 설치되네요.uvicorn 도 설.. Framework (Backend)/FastAPI 2024. 10. 11. Javalin 프레임워크 시작해보기 보통 Java 웹프레임워크로 SpringBoot 을 많이 사용하는데, 개인적으로 쓸데없이 번잡스러워서 싫어한다. 다른 언어에서도 그렇지만, 간단하고 가벼운 프레임워크를 선호합니다. Javalin 은 이에 부합하는 아주 좋은 경량 프레임워크 입니다. 우리나라에서는 사용하는 곳을 본적이 없습니다. Javalin은 꽤 활발하게 개발되고 있는 프로젝트여서 운영에 사용해도 무방합니다. https://javalin.io 에 들어가서 한 번 구경해보세요. 기본적으로 JDK와 gradle 이 설치되어 있는 상태여야 합니다. JDK와 gradle 설치는 https://gauryan.tistory.com/226 에서 확인할 수 있습니다. 먼저 작업폴더를 만들어줍니다. 저는 C:\work\japi 로 했습니다. 여기에서 g.. Framework (Backend)/Javalin 2024. 8. 23. Fiber v2.x Tutorial 본 튜토리얼에서는 대부분의 사이트에 기본적으로 필요한 기능을 익히는데 목적이 있습니다. 예제에서는 관리자로 로그인/로그아웃하고, 관리자를 등록/수정/삭제 등을 할 수 있는 기본적인 기능을 포함하는 예제를 만들어봅니다. 그리고, 비밀번호의 단방향 암호화(SHA-256)를 해보는 기능도 포함됩니다. DB 연결시 GORM을 사용하지만, 제공되는 Model 메소드(ORM)를 사용하지 않고, 직접 쿼리(스토어드 프로시저)를 사용하여 처리할 것입니다. 또한, 튜토리얼의 소스는 https://github.com/gauryan/fiber-tutorial 에서 확인 가능합니다. 시작 (설치 및 첫페이지 만들어보기) MySQL 설치와 연결 관리자 목록 보여주기 관리자 추가하기 관리자 비밀번호 변경하기 관리자 수정하기 관리.. Programming/Go 2021. 10. 1. 관리자 비밀번호 변경하기 : Fiber v2.x 이번에는 관리자의 비밀번호를 변경해볼 것입니다. 이를 위해서 저장프로시저를 2개 생성할 것이고, 관련 코드들을 작성해보겠습니다. 코드들이 이전과 비슷하지만, 조금씩 다들 부분들이 있으니 주의해서 봐주세요. 그리고, 이 튜토리얼의 소스는 https://github.com/gauryan/fiber-tutorial에서도 확인할 수 있습니다. 1. 저장 프로시저 (getAdmin) 생성 $ mysql -u xyz -pxyz123 xyz mysql: [Warning] Using a password on the command line interface can be insecure. Reading table information for completion of table and column names You can .. Programming/Go 2021. 9. 29. 관리자 추가하기 : Fiber v2.x 이 튜토리얼의 소스는 https://github.com/gauryan/fiber-tutorial 에서도 확인할 수 있습니다. 관리자 목록을 보았으니, 이제는 새로운 관리자를 추가해봅시다. 1. 저장 프로시저 (insertAdmin) 생성 $ mysql -u xyz -pxyz123 xyz mysql: [Warning] Using a password on the command line interface can be insecure. Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monit.. Programming/Go 2021. 9. 28. 시작 (설치 및 첫페이지 만들어보기) : Fiber v2.x Tutorial 본 튜토리얼에서는 대부분의 사이트에 기본적으로 필요한 기능을 익히는데 목적이 있습니다. 예제에서는 관리자로 로그인/로그아웃하고, 관리자를 등록/수정/삭제 등을 할 수 있는 기본적인 기능을 포함하는 예제를 만들어봅니다. 그리고, 비밀번호의 단방향 암호화(SHA-256)를 해보는 기능도 포함됩니다. DB 연결시 GORM을 사용하지만, 제공되는 Model 메소드(ORM)를 사용하지 않고, 직접 쿼리(스토어드 프로시저)를 사용하여 처리할 것입니다. 전체 9개의 글로 작성될 것이니, 이후에도 잘 챙겨서 봐주시면 아마도 어쩌면 도움이 되실지도 모르겠습니다. *^^* 이 Tutorial의 소스는 깃헙(https://github.com/gauryan/fiber-tutorial)에도 올려놓았습니다. OS(Ubuntu L.. Programming/Go 2021. 9. 21. AdonisJs 4.0 Tutorial 본 튜토리얼에서는 대부분의 사이트에 기본적으로 필요한 기능을 익히는데 목적이 있습니다. 예제에서는 관리자로 로그인/로그아웃하고, 관리자를 등록/수정/삭제 등을 할 수 있는 기본적인 기능을 포함하는 예제를 만들어봅니다. 그리고, 비밀번호의 단방향 암호화(SHA-256)를 해보고, 개인정보(이름,전화번호,이메일 등)을 AES-256 로 암호화하여 DBMS에 저장/관리하는 기능도 포함됩니다. 1. 시작 2. 첫페이지 만들어보기 3. 모델 생성 4. 관리자 목록 보여주기 5. 관리자 추가하기 6. 관리자 비밀번호 변경하기 7. 관리자 수정하기 8. 관리자 삭제하기 9. 비밀번호 단방향암호화(SHA256) 하기 10. 개인정보 양방향암호화(AES256) 하기 11. 로그인/로그아웃 처리하기 Programming/Javascript 2017. 10. 26. (AdonisJs 4.0 Tutorial) 로그인/로그아웃 처리하기 명색이 관리자 화면인데, 아무나 들어와서 조작하면 안되겠지요? 이제는 마지막으로 로그인/로그아웃 처리를 해보겠습니다. 로그인/로그아웃은 세션을 이용해서 구현합니다. 로그인 화면을 구성합니다. xyz/resources/views/mgmt/index.edge 을 작성합니다. {{ csrfField() }} 아이디 비밀번호 xyz/app/Controllers/Http/Mgmt/MainController.js 를 생성합니다. 'use strict' class MainController { index ({view}) { return view.render('mgmt/index') } } module.exports = MainController xyz/start/routes.js 다음을 추가합니다. Route.get.. Programming/Javascript 2017. 10. 25. (AdonisJs 4.0 Tutorial) 개인정보 양방향암호화(AES256) 하기 이 예제에는 개인정보 데이터가 없긴 하지만, 별명(Nick)을 개인정보라 간주하고 암호화를 진행해보겠습니다. Adonis 에서는 데이터 암호화를 위해서 Encryption 모듈을 제공하고 있습니다. 데이터를 암호화하고 다시 풀려면, Key 가 있어야 합니다. 이 Key 를 .env 파일에 APP_KEY 로 이미 정의되어 있습니다. xyz/app/Models/Admin.js 에 다음을 추가한다. const Encryption = use('Encryption') ... getNick(nick) { return Encryption.decrypt(nick) } setNick(nick) { return Encryption.encrypt(nick) } ... DB의 내용을 모두 삭제한 후에, 관리자를 추가해봅니다... Programming/Javascript 2017. 10. 24. (AdonisJs 4.0 Tutorial) 비밀번호 단방향암호화(SHA256) 하기 정보통신망법, 개인정보보호법 등에 의하면 비밀번호는 단방향암호화(SHA256 등), 개인정보는 양방향암호화(AES256 등)를 하도록 되어 있습니다. 지금까지 작성한 예제는 이런 법에 맞지 않아서 서비스할 수 없겠네요. 여기에서는 비밀번호의 단방향 암호화를 구현해보도록 하겠습니다. Adonis 에서는 비밀번호 암호화에 더 좋다고 하는 bctypt를 제공하고 있지만, 이것이 법에 명시되어 있지는 않아서, SHA256 을 사용하겠습니다. 먼저, 기존 DB에 들어있던 사용자 정보를 모두 삭제합시다. $ cd database $ sqlite development.sqlite SQLite version 3.15.0 2016-10-14 10:20:30 Enter ".help" for instructions Ente.. Programming/Javascript 2017. 10. 23. (AdonisJs 4.0 Tutorial) 관리자 삭제하기 xyz/Controllers/Http/Mgmt/AdminController.js 에 다음을 추가한다. ... // 관리자 삭제 // /mgmt/admin/delete/:id async delete ({params, response}) { const admin = await Admin.find(params.id) await admin.delete() return response.route('mgmt_admin') } ... xyz/start/routes.js 에 다음을 추가하고, 관리자 삭제를 해봅니다. Route.get('/admin/delete/:id', 'Mgmt/AdminController.delete').as('mgmt_admin_delete') 여기까지 하면, 기본적인 CRUD 기능을 모두 작성.. Programming/Javascript 2017. 10. 20. 이전 1 2 다음