일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mongod
- Android
- springboot
- Xcode
- java
- GCP
- remote
- ubuntu
- github
- naver
- MongoDB
- Media-type
- errorstack
- cloud
- VM
- for developer
- playgrounds
- npm update
- 27inch
- freetier
- 몽고디비
- instance
- Spring
- 27017
- MAC
- initandlisten
- ubuntu java
- openjdk
- navercloud
- 가상머신
- Today
- Total
목록스프링부트 (8)
김컴공랩

헬로월드! 김컴공입니다. 지난 포스팅에 이어, 스프링과 몽고디비를 연동하는 것을 계속하겠습니다. 이전에 서버의 몽고디비 포트(27017)를 오픈했으니, 이제 MongoDB Compass 를 이용해 접속을 테스트하겠습니다. mongodb://[계정명]:[비밀번호]@[주소]:27017/[데이터베이스명] 몽고디비에 접속하기 위해서는 가상머신의 IP주소와 포트번호, 접속할 데이터베이스 이름, 접속권한을 가진 계정이 필요합니다. 지금까지 가상머신의 주소, 포트, 데이터베이스 명을 해결했으니, 데이터베이스에 계정을 생성하고 접속권한을 설정하겠습니다. 몽고디비 계정 생성 다시 몽고디비 Shell 로 돌아가보겠습니다. $ mongo 우선 기본적으로 몽고디비는 외부 접속 인증을 할 때 admin 데이터베이스에 존재하는 ..

헬로월드! 김컴공입니다. 이번 포스팅부터는 스프링과 데이터베이스를 연동해보도록 하겠습니다. 데이터베이스는 NoSQL 인 몽고디비를 사용할 것입니다. 오늘 포스팅에서는 몽고디비를 운용하기에 앞서 먼저 데이터베이스를 설치하고 명령어를 익혀보고 권한설정을 해보도록 하겠습니다. 몽고디비 설치 먼저 서버를 배포할 가상머신에 접속합니다. (클라우드 컴퓨터 및 가상머신 접속은 kimce.tistory.com/category/Cloud 에서 확인하세요.) 가상머신에 몽고디비 서버를 설치합니다. 아래 명령어는 우분투 운영체제에서의 몽고디비 설치 명령어입니다. $ apt-get install mongodb 저 같은 경우 설치하는데 3~5분 정도 소요했습니다. 설치가 완료되면 아래 명령어를 이용해 몽고디비에 접속합니다. $..

헬로월드! 김컴공입니다. 이전 스프링부트 포스팅까지는 프로젝트를 생성하고 간단한 컨트롤러를 생성해봤습니다. 이번 포스팅에서는 타임리프라는 것을 활용해 웹 서비스를 배포해보겠습니다. 우선 타임리프에서 간단하게 살펴볼까요? 타임리프(Thymeleaf) 란? 타임리프 공식 홈페이지(www.thymeleaf.org/index.html) 를 살펴보면, 서버사이드 렌더링을 위한 템플릿 엔진이라고 정의돼있습니다. 서버에서 템플릿 형식으로 배포해서 이용자들은 그 문서를 읽는 것인데요, 다소 어렵게 느껴지는 것 같아서, 공식 홈페이지의 코드를 일부 가져오겠습니다. Name Price Oranges 0.99 타임리프의 코드 일부입니다. 얼핏보면 html 문법이랑 매우 흡사합니다. html 문법과 비슷하게 짜여져 있어서 기..

헬로월드! 김컴공입니다. 이전 포스팅에서 컨트롤러를 생성했습니다. 그럼 최종적인 결과 확인을 위해 프로젝트를 로컬에서 배포해보고, Postman 을 이용해 테스트해보도록 하겠습니다. Postman 이란? 상용 웹 서비스 혹은 웹 API 를 확인할 수 있고 또는 직접 개발한 API 를 테스트하는 용도로 자주 쓰이는 프로그램입니다. 저 또한 웹서비스 프로젝트를 개발할 때 아주 많이 사용한 소프트웨어로, 특히 백엔드 개발 시에 유용하므로 익혀두면 좋은 프로그램입니다. 스프링부트 프로젝트 배포 우선 지금까지 만든 스프링 프로젝트 창을 확인해보겠습니다. 패키지 디렉터리에 MainController 를 생성했고, 이는 /hello GET Request 를 처리하는 컨트롤러입니다. 이제 위 사진에 표시된 것 처럼 해..

헬로월드! 김컴공입니다. 이번 포스팅에서는 이전 포스팅에서 생성했던 스프링 프로젝트에서, 클라이언트의 웹 요청에 대응하는 컨트롤러를 생성하도록 하겠습니다. 오늘의 목표로는, 사용자가 "/hello" 라는 GET 요청을 했을 때 서버가 "Hello World!" 라는 문자열을 반환하게끔 만들어 보겠습니다. 프로젝트 초기 화면입니다. 왼쪽의 Project Navigator 에서 프로젝트를 열어 프로젝트의 디렉터리 구조를 한번 살펴볼까요? 스프링 프로젝트 구조 대표적인 디렉터리만 살펴보겠습니다. project/src/main 디렉터리가 가장 많이 다루게 될 디렉터리입니다. 1. main/java 내에서 컨트롤러, 서비스 클래스들을 생성할 것이고, 데이터베이스와 연동할 때 사용하게 될 모델 또한 이 디렉터리에 ..

헬로월드! 김컴공입니다. 며칠전부터 여러개의 클라우드 서비스를 다뤄보면서 서버를 구성할 환경을 만들었습니다. 가상머신을 켜놓기만 하면 아쉽기 때문에, 이번 포스팅부터는 Spring 을 이용해 간단한 웹서비스를 만들어보는 시간을 갖겠습니다. 개발환경 앞으로의 설명에 활용될 개발 환경입니다. - IntelliJ IDEA (Spring 개발 툴) 위 툴을 이용할 것이기 때문에, 이 포스팅부터 해서 설명을 따라가실 분들은 최대한 위와 같은 환경으로 맞추셔서 따라와주시면 됩니다. 만약 자신에게 조금 더 익숙한 툴이 있다면 그 툴을 사용하셔도 무방합니다. 스프링부트 프로젝트 생성 스프링부트 프로젝트는 인텔리제이를 통해서 생성하겠습니다. New Project 를 클릭하면 왼쪽에 많은 Project Template 가..

헬로월드! 김컴공입니다. Spring Security 프레임워크와 JsonWebToken 을 이용해 웹인증을 구현하는 도중, 로그인을 시도해서 서버로부터 토큰을 얻으려고 할때, 웹서버 로그에 다음과 같은 에러가 발생했습니다. java.lang.NoClassDefFoundError: Could not initialize class javax.xml.bind.DatatypeConverterImpl 오류 로그를 자세하게 읽어보고, 관련하여 코딩한 컨트롤러와 클래스들을 살펴보아도 문제가 없는 것 같아서 구글링했습니다. (stackoverflow.com/questions/55606519/getting-exception-java-lang-noclassdeffounderror-could-not-initialize-c..

헬로월드! 김컴공입니다. Spring Boot, 스프링 부트에서 Controller 를 운용하는 과정에서, POST 로 json 데이터를 받을 때 다음과 같은 에러가 발생하면서 Controller가 정상적으로 운용되지 않는 경우가 있습니다. (HttpMediaTypeNotSupportedException) 이 에러메세지를 자세히 보시면 아시겠지만, 스프링부트 내에서 POST 된 json 데이터를 application/json 이 아닌 application/x-www-form-url 로 인식해서 처리하지 못하고 예외처리를 한 상태입니다. 해결방법 프론트엔드 단에서 JSON POST를 전송할 때, 다음과 같은 옵션을 넣어주면 됩니다. contentType: 'application/json' 그럼 Contro..