Language 썸네일형 리스트형 [Python] FastAPI 사용하기 - DB Connection - Fast API 공식 문서를 참고하여 DB Connection을 진행했습니다 공식문서: https://fastapi.tiangolo.com/ko/tutorial/sql-databases/?h=db#read-data SQL (Relational) Databases - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com - Fast API의 기본적인 DB 활용방법은 ORM이라고 합니다. SQLAlchemy 설치 $ pip install sqlalchemy database.py from sqlalchemy import create_engine from .. 더보기 [Python] FastAPI 사용하기 - 가상환경 , requirements.txt 설정 - 파이썬에는 기본적으로 가상환경을 제공합니다. 혼자서 한 개의 프로젝트를 진행한다면 사용하지 않아도 되겠지만, 협업 또는 현재 진행하는 프로젝트가 여러 개일 경우 로컬에 설정되어 있는 파이썬 버전 및 부가적으로 필요한 DI 항목들을 쉽고 빠르게 관리하기 위해서는 파이썬의 가상환경을 활용하는 것이 도움이 되기 때문에 프로젝트 진행에 앞서 가상환경을 설정하였습니다. 가상환경 설치 및 생성 $ python3 -m pip install virtualenv $ virtualenv venv --python=python3.11 - 버전은 생략해도 됩니다."--python=python3.11" - 실행 후 해당 작업 디렉터리에 venv라는 가상환경 폴더가 생성됩니다. - 해당 폴더에는 가상환경에 필요한 파일들이 존재.. 더보기 [Python] FastAPI 사용하기 - 설치 방법 및 기본 예제 Fast API란? - 공식문서 : https://fastapi.tiangolo.com/ko/ FastAPI FastAPI FastAPI 프레임워크, 고성능, 간편한 학습, 빠른 코드 작성, 준비된 프로덕션 문서: https://fastapi.tiangolo.com 소스 코드: https://github.com/tiangolo/fastapi FastAPI는 현대적이고, 빠르며(고성능), 파이썬 fastapi.tiangolo.com - 공식문서에 따르면 FastAPI는 현대적이고 빠른 파이썬 기반의 웹 프레임워크 라고 합니다. - 빠른 것으로는 최근 많은 서비스에 사용되는 NodeJS, Go와 대등할 정도로 매우 높은 성능을 자랑한다고 합니다. 또한 Swagger를 기본적으로 제공하고있어 문서를 자동화할 .. 더보기 [JAVA] JVM, JRE, JDK 자바의 동작원리 이 글은 백기선 님의 "더 자바, 코드를 조작하는 다양한 방법" 강의를 수강 후 참고하여 작성한 글입니다. JVM (Java Virtual Machine) : 자바 가상 머신 - 바이트 코드를 OS에 특화된 코드로 변환하여 실행해 준다. 바이트 코드란? - 자바 가상 머신이 실행하는 명령어의 형태 설명만으로는 이해하기 어려울 수 있기 때문에 직접 java 파일을 컴파일하여 어떤 식으로 동작하는지 살펴보았다. HelloWorld.java라는 간단한 파일을 생성하였다. 내용은 다음과 같다 public class HelloJava { public static void main(String[] args) { System.out.println("Hello World"); } } javac 명령어를 통해 해당 파일.. 더보기 [Java] BigInteger 백준 브론즈 등급의 알고리즘 문제를 풀던 중 .... https://www.acmicpc.net/problem/2338 2338번: 긴자리 계산 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미). www.acmicpc.net 위와 같은 문제를 만났다. 문제 설명을 봐선 크게 특별할게 없지만... "각각의 수는 10진수로 1,000자리를 넘지 않으며 양수와 음수가 모두 주어질 수 있다." 라는 설명이 있다. 1,000자리면 굉장히 긴 자릿수 이기때문에 평소 사용하던 int 를 사용해선 범위를 초과하게 될것이다. 또한, long 타입으로도 해결이 되지않을것이다. int .. 더보기 [TestCode] Mock 객체 만들기 Mockito (JUnit5) - 사용이유 : 테스트 코드에서 객체 생성시 Mokito를 활용하여 임의로 생성해주어 번거로움을 줄일 수 있다. Mockito.mock() 메소드를 활용하여 만드는 법 @Test void createLunchService() { // mock() 메소드로 만드는 방법 LunchRepository lunchRepository = mock(LunchRepository.class); LunchService lunchService = new LunchService(lunchRepository); assertNotNull(lunchService); } - Mockito가 없다면 위 객체를 만들어주는데 필요한 구현체를 모두 구현해 줘야하기때문에 장황한 코드가 발생하지만 Mockito를 활용하여 위처럼 짧고 간결하게.. 더보기 [TestCode] junit-platform.properties 설정파일 (JUnit5) - Junit 설정 파일로, 클래스 패스 루트 (src/test/resources/)에 넣어두면 적용된다. - 파일 생성시 클래스 패스로 인식하지 않을 수 있다. 그런 경우 아래와 같이 설정해주면 된다. - File -> Project Structure -> Modules -> 해당 디렉터리를 Test Resorces로 설정 # 테스트 인스턴스 라이프사이클 설정 junit.jupiter.testinstance.lifecycle.default = per_class - 위처럼 해당 파일에 per_class로 설정해주게되면 전체 테스트 코드는 per_class로 실행되는 걸 확인할 수 있다. - 클래스에서 @Testinstance 어노테이션을 제거해도 위처럼 하나의 인스턴스로 동작하는걸 확인할 수 있다. @T.. 더보기 [TestCode] @TestMethodOrder 테스트 순서 (JUnit5) - 테스트 코드는 내부적으로 정해져있는 순서에 맞춰 실행되기때문에 여러번 실행을 해도 동일한 순서로 동작한다. (junit 내부 로직 변화에 따라 변할 수 있다) @TestMethodOrder : 테스트 메소드를 원하는 순서에 따라 실행하도록 해준다. @TestMethodOrder(MethodOrderer.OrderAnnotation.class) class LunchTest { ``` @Order(1) @custom @DisplayName("테스트 순서 1") void order1_ex() { System.out.println("첫번째 테스트"); } @Order(3) @custom @DisplayName("테스트 순서 3") void order3_ex() { System.out.println("세번째 .. 더보기 이전 1 2 3 4 5 다음