728x90
반응형

Development 16

VSCode 파이썬 노란색 밑줄 오류 해결법

입사 전 선행학습을 위해 FastAPI 공식문서를 보고 공부하던 중 발생한 오류이다.  2, 3행 fastapi, pydantic 부분에 노란색 밑줄이 쳐져 있다.오류를 확인해 보면,   이런 오류가 뜬다. pydantic도 모듈 이름만 다르고 같은 오류이다. 이 상태에서도 코드는 정상적으로 실행되지만, 저 밑줄을 보고 참을 수 있는 개발자는 없을 것이다.구글링을 해보니 언어 설정을 영어로 바꾸거나, 인터프리터 버전을 바꾸면 대체로 해결된다는 글들이 많았다.일단 언어 설정은 효과가 없었다. 그래서 인터프리터 버전을 바꿔보기로 했다.   일단 내가 파이썬 어떤 버전을 쓰는지 확인해 보았다. 현재 3.11.9를 쓰고 있다.   Ctrl + Shift + P를 누르고 interpreter를 검색하면 selec..

Development/FastAPI 2024.10.13

[Docker] 도커 다운로드와 설치 / 컨테이너 실행 및 중지하기

https://www.docker.com/get-started/ Get Started | DockerGet started with Docker Desktop and join millions of developers in faster, more secure app development using containers and beyond.www.docker.com 우측 중앙 Download 버튼을 눌러서 다운로드 받는다. 본인 CPU, 운영체제 등에 맞게 다운로드 하면 된다.난 Window 운영체제에 AMD CPU라서 저렇게 다운받았다. 다운받은 후 설치는 쉽다. 권장사항으로 쭉쭉 설치하고 마지막에 재부팅을 한번 하면 끝이다.설치가 끝난 후 설문조사가 있는데 대충 체크하고 넘어가면 바로 도커를 사용해볼 수 있..

Development/Docker 2024.09.26

[Visual Studio 2022] C언어 소스코드 하나만 실행하는 법, 프로젝트와 솔루션

C언어를 처음 시작하면 가장 먼저 만날 시련이라고 생각된다. 한 프로젝트에 main 함수는 1개밖에 존재할 수 없다고 오류가 뜨고, 다른 프로젝트를 만들어 실행하니 아까 실행했던 코드만 계속 실행되곤 한다. 해결방법은 main 함수의 이름을 바꾸거나, 빌드에서 제외하거나, 프로젝트에서 제외하거나 등등의 방법이 있지만 현업이 아닌 C언어 문법을 처음 학습하는 입장에서는 이 방법이 제일 편리한 것 같다. 바로 시작 프로젝트로 설정하는 것이다. 실행을 원하는 코드가 있는 "프로젝트"를 우클릭 해서 "시작 프로젝트로 설정" 을 누른다. 그러면 해당 프로젝트가 시작 프로젝트가 되며, 굵은 글씨체로 표시된다. 이렇게 설정한 후 Ctrl+F5 ( 디버깅하지 않고 실행 ) 을 누르면 원하는 코드가 실행될 것이다. 이게..

Development/C 2024.02.07

스프링 입문 - 회원 서비스 테스트

회원 서비스 개발에 이어, 개발한 회원 서비스를 테스트할 차례다. 테스트를 수행할 MemberService에서, Ctrl + Shift + T를 누르고, Create New Test를 누른다. 그러면 이런 창이 뜬다. 테스트 클래스 이름도 본래 클래스 이름에 Test만 붙여서 자동으로 작성해 준다. 내가 테스트하고 싶은 메소드를 아래에서 체크해서 OK를 누른다. 그러면 이렇게 테스트에 필요한 틀을, 적절한 위치(경로)에 아주 쉽게 만들어준다. 일단 만들어진 테스트가 문제가 없는지, 현재 상태에서 바로 한번 돌려본다. 다행히 문제는 없다. 본격적으로 테스트 케이스를 작성해 보기 전에, 잠깐 MemberService로 가보자. 기존 코드를 변경해서, 이렇게 생성자를 통해 외부에서 리포지토리를 주입받도록 변경..

Development/Spring 2023.11.07

스프링 입문 - 회원 서비스 개발

도메인, 리포지토리를 만들었으니 서비스를 만들 차례이다. hello.hellospring.service 패키지를 만들고, service 패키지 아래에 MemberService 클래스를 만들자. 서비스는 리포지토리와 함께 동작해야 하니, 미리 만들어두었던 리포지토리 객체를 만들어 주자. 회원가입 메소드인 join이다. member 객체를 매개변수로 받아서 리포지토리에 저장하고, 저장한 객체의 Id를 리턴한다. 단, 중복된 name을 가진 회원은 가입할 수 없도록 검증하는 과정이 있다. 바로 밑에 선언해둔 validateDuplicateMember가 중복을 검사하는 메소드이다. name을 기준으로 리포지토리에서 회원을 찾아서, 해당 회원이 이미 존재한다면 "이미 존재하는 회원입니다" 예외를 출력하고 메소드는..

Development/Spring 2023.11.07

스프링 입문 - 회원 리포지토리 테스트 케이스 작성

개발한 코드가 잘 동작하는지 확인하기 위해서는, 테스트 케이스를 작성하여 확인해야 한다. 자바는 JUnit 이라는 프레임워크를 제공하여, 테스트를 효율적으로 실시할 수 있게 해준다. 우선 테스트 케이스를 작성할 패키지를 만들어 주자. 주의해야 할 점은, 앞서 코드를 작성했던 "Main" 디렉터리 밑이 아닌 그 아래에 있는 "test" 디렉터리 아래에 만들어야 한다는 점이다. test 디렉터리 밑에서, hello.hellospring.repository 패키지를 만들어 주자. repository 패키지 아래에 MemoryMemberRepositoryTest 클래스를 만들어 주자. 우리는 MemoryMemberRepository를 테스트할 것이기 때문에, 뒤에 Test만 붙여서 생성하는 것이다. 테스트 클래..

Development/Spring 2023.11.01

스프링 입문 - 회원 도메인과 리포지토리 만들기

우선, 도메인을 구현할 패키지인 hello.hellospring.domain 패키지를 만들자. domain 패키지 하위에, Member 클래스를 만들자. 그리고 위와 같이 도메인 역할을 할 Member 클래스를 작성해 주자. 비즈니스 요구사항에서, 데이터는 회원ID, 이름 2가지였다. 그 역할을 해줄 id, name 필드를 선언하고 getter setter를 작성한 것이다. 다음은 repository 패키지를 만들어 주자. repository 패키지 하위에, MemberRepository "인터페이스"를 만들자. 위와 같이 인터페이스를 작성해주자. 여기서 구현을 할 수는 없고, 추상 메소드 4개를 선언했다. 이것은 MemoryMemberRepository라는 구현 클래스에서 구현할 것이다. reposit..

Development/Spring 2023.10.29

스프링 입문 - 비즈니스 요구사항 정리

본격적으로 개발을 하기 앞서, 우선 비즈니스 요구사항을 정리해야 한다. 복잡한 비즈니스 로직을 배우는 것이 아닌, 스프링이 어떻게 돌아가는지를 이해하기 위함이므로 가장 쉬운 비즈니스 요구사항을 택할 것이다. 일반적인 웹 애플리케이션 계층 구조는 이렇다. 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현. 도메인을 이용한 서비스, 기능, 로직 그 자체를 의미 리포지토리(저장소): 데이터베이스에 접근하고 도메인 객체를 DB에 저장하고 관리함. 도메인: 비즈니스 도메인 객체. 회원, 주문, 쿠폰 등등. DB에 저장되고 서비스로써 이용될 것들. 비즈니스 요구사항 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않은 상태라는 가정 ( 어떤 DB를 사용할지 정해..

Development/Spring 2023.10.29

스프링 입문 - API

정적 컨텐츠를 제외하면, 웹 브라우저(클라이언트)에게 데이터를 전송하는 방법은 크게 2가지가 있다. 첫번째가 MVC(Model, View, Controller), 두번째가 API이다. MVC 방식은 html로 View를 만들고 템플릿 엔진으로 렌더링하여 전송한다고 하면, API 방식은 View를 사용하지 않고, 데이터 그 자체 또는 객체를 렌더링 없이 그대로 전송한다. 우선 API 방식을 실습해보기 위해, 컨트롤러를 열어주자. 컨트롤러 맨 아래쪽에, helloString 메소드를 생성하자. 여기서 중요한건 @ResponseBody 어노테이션이다. ResponseBody는 데이터를 http response의 body부분에 직접 넣어주겠다는 뜻이다. 리턴값은 "hello " + name 이므로, 웹브라우저엔..

Development/Spring 2023.10.26

스프링 입문 - MVC와 템플릿 엔진

MVC : Model, View, Controller Model : 데이터나 비즈니스 로직을 나타냄, 사용자 정보, 주문 정보 등 모두 모델이라고 할 수 있다. View : 사용자에게 데이터를 출력하고 인터페이스를 생성한다. Controller : 모델에 필요한 작업을 수행하고, 그것을 뷰로 전달하여 사용자에게 출력하도록 한다. 컨트롤러인 HelloController 파일을 열자. 새로운 페이지를 만들것이다. HelloController 파일에 코드를 추가하자. 기존 코드에 아래쪽 helloMvc 메소드 부분을 추가하면 된다. 웹에서 hello-mvc 주소로 접속하면 해당 코드가 실행된다. "name" 이라는 이름의 파라미터에 사용자로부터 입력값을 받아야 한다. 또한 View에, 입력받은 "name"값을..

Development/Spring 2023.10.24
728x90
반응형