BackEnd 8

Fast api 에서 playwright 을 사용할때 NotImplementedError 에러

최근 개발하고 있는 취향 링크 수집 프로젝트에서 LangChain 과 Open ai api 를 사용해서 키워드 추출 기능을 백엔드로 추가 할 계획으로백엔드를 개발한다고 Fast api 를 써봤는데 링크로 웹 크롤링이 필요해서 playwright  를 쓰는 도중에  계속해서 NotImplementedError  에러가 발생했다.서버를 실행할때 쓰는 uvicorn 과 연관된 에러인거 같은데 .. 사실 정확한 이유는 모르겠고 실행할때 항상  uvicorn main:app --reload 로 실행했었는데 uvicorn main:app 이렇게 reload 를 빼고 실행하니까 문제가 발생하지 않았다. 혹시나 이유를 아신다면.. 알려주시면 감사하겠습니다!

BackEnd 2024.04.28

Nest.js 시작하기

Java 로 백엔드를 만들어본 사람이라면 spring나 spring-boot 의 존재에 대해서 많이들 알거라고 생각한다. node.js 에도 express 라는 멋진것이 존재하지만 spring-boot 만큼의 편리함은 사실 없다고 느꼈다. 백엔드를 주로 하는것도 아니니까 그냥 그렇게만 생각하고 있던 찰나 우연하게 nest.js 라는것을 알게 됐고 눈에 들어온 문구가 있었다. "Java에 spring 이 있다면 node.js 에는 nest.js가 있다." 예전에 spring 으로 앱 서버를 만들어봤지만 확실히 spring 은 이것저것 설정해줄거나 건드려줄게 많았는데 보다 간편한 node에 그런 프레임워크가 있다니? 라는 생각으로 찾아보며 공부해봤다. 생각했던거 이상으로 spring 을 사용해본 사람이라면 ..

Spring boot 의 구조

이전 포스팅에서 우리는 자바 JDK 설치, 환경 변수 설정, STS 설치 및 환경 설정, 스프링 부트 프로젝트 생성, 플러그인 설치 등의 작업을 진행하였습니다. 이번에는 생성한 프로젝트에서 중요한 역할을 하는 파일들과 기존 스프링 프로젝트와의 차이점 등에 대해 가볍게 알아보는 시간을 가져보도록 하겠습니다. 스프링 부트 프로젝트 구조 1. src/main/java 기존의 스프링과 마찬가지로 클래스, 인터페이스 등 자바 파일이 들어가는 디렉터리입니다. 이전 포스팅에서 생성한 com.board 패키지 안에 BoradApplication 클래스가 생성되어 있는 것을 볼 수 있는데요, 파일을 열어보면 클래스 선언부 위에 @SpringBootAplication이 선언되어 있습니다. 이 애너테이션은 다음의 세 가지 ..

BackEnd/Java Spring 2020.05.23

Spring annotation @Component, @Configuration

Spring 프로젝트를 진행하면서 Bean으로 등록하기위해 @Component, @Configuration, @Controller … 등의 여러 어노테이션을 사용합니다. 그중에서도 @Component와 @Configuration은 사용상에 있어 차이가 있는데, 정확히 어떠한 차이로 이 어노테이션들을 구분하여 사용하는지 알아보도록 하겠습니다. Spring Bean Bean : Spring bean container에 존재하는 객체로써, default 설정으로는 싱글턴으로 존재합니다. 일반적으로 bean 으로 등록하기위해서는 다음과 같은 방법들이 존재합니다. xml 등록 레거시 방식으로, xml 방식으로 등록하는 방법입니다. 위와같이 xml에 class 경로와 id 를 직접 지정해주어 bean으로 등록해줄수..

BackEnd/Java Spring 2020.05.23

Spring IoC 컨테이너 , 빈 , 의존성 주입 개념정리

Spring IoC 컨테이너 IoC (Inversion of Control) 이름에서도 알 수 있듯 제어의 역전을 의미한다. 그렇다면 제어의 역전이 무슨 말일까? 보통 일반적인 프로그램을 작성할 때는 main 함수가 있어서 시작 부분을 자신이 컨트롤 할 수 있는데 프레임워크를 사용할 때는 main 함수에서 SpringApplication.run 을 해줄뿐 내가 작성한 코드는 따로 호출하지를 않는다. 처음 스프링 프레임워크를 사용했을때는 이 부분의 의아했었던 기억이 난다. 이 의아함을 해결해주는것이 바로 IoC 컨테이너이다. 생성하고 초기화 실행 소멸을 알아서 처리하는것이다. 어떤 요청이 들어왔을때 어떤 객체를 어떻게 조작할 것인가 를 대신 수행주는것이 이 컨테이너다. 개발자가 객체를 생성하고 작동하는 로..

BackEnd/Java Spring 2020.05.05

스프링 동작 정리-1

위 그림처럼 스프링의 대체적인 경로와 사용목적은 이렇게 된다. 하나하나 간단하게 설명을 하자면 src/main/java 에서는 보통 VO , DAO , Controller, Service 등 직접 개발자가 개발하는 주요 코드들이 동작하는곳이다. src/main/resources 는 서버가 실행될 때 필요한 파일들의 경로라고 되어있는데 예를 들자면 위의 그림과 같다. 서버가 작동할때 찍을 로그라던지 서버가 실행될때 DB를 조작하기 위한 mybatis 를 사용하기위한 설정파일 그리고 그것의 실질적인 동작을 표현하는 mappers 파일등이 여기에 들어간다. servlet-context 는 브라우저의 요청으로부터 그 요청을 처리한 controller를 이어주는 작업을 한다. 사진의 가장 아래에 component..

BackEnd/Java Spring 2020.05.05

Java Spring - @RequestBody, @ResponseBody 정리

1. @RequestBody ajax 를 사용할때 같이 쓰는데 이때 JSON.stringify 함수를 이용하여 데이터를 보내고 contentType을 "application/json"으로 설정해주어야 한다. 즉 ajax로 보낸 json 객체의 정보를 스프링에서 받아올때 사용한다. @Controller public class MainController { @ResponseBody @RequestMapping("/ex") public void init(@RequestBody User user) { user.getName(); user.getAge(); } } 스프링에서는 이렇게 받을 수 있다. 이때 User 클래스의 프로퍼티는 전송된 JSON 객체와 프로퍼티명이 일치해야하며 getter와 setter가 있어..

BackEnd/Java Spring 2020.04.14