반응형

분류 전체보기 875

[Spring boot] Restful API 쉽게 호출하는 방법 by using RestTemplate

RestTemplate란? Spring 3.0부터 지원하는 라이브러리로 간편하게 Rest 방식 API를 호출할 수 있습니다. Restful API 서비스를 요청 후 응답받을 수 있도록 설계되었습니다. Spring 5부터는 WebFlux 스택과 함께 WebClient라는 새로운 HTTP 클라이언트를 도입하여 기존의 동기식 API를 제공할 뿐만 아니라 효율적인 비차단 및 비동기 접근 방식을 지원하여 RestTemplate는 deprecated 되었습니다. 따라서 WebClient 사용을 지향합니다. RestTemplate Method Method Operation Action delete() DELETE 지정된 URL의 리소스에 대해 HTTP DELETE 요청을 수행합니다. getForEntity() GET..

back end/java 2022.10.11

postman에서 login token을 자동으로 header에 넣는 방법

RestAPI 등 backend를 개발하면서 postman이 거의 필수가 되어가고 있습니다. postman이 워낙 엄청난 프로그램이기 때문에 postman의 활용도에 따라 개발 생산성에 큰 차이를 가져옵니다. 이번에는 postman의 수많은 기능 중 login token을 header에 자동으로 설정하는 방법을 알아보겠습니다. 1. 개요 예전에는 로그인 관리를 세션으로 했지만 최근에는 token으로 하는 추세입니다. 최초 Login API를 호출하면 token을 리턴하고, 그 이후부터 클라이언트는 모든 API를 호출할 때 header에 token을 넣어서 호출하는 것입니다. 다음과 같은 사용자 관리 API가 있다고 가정합니다. 원래대로라면 로그인 API를 호출 한 후 반환된 token을 복사해서 위 이미..

spring boot jpa에서 SQLite 사용하는 방법

1. SQLite란? 공식 사이트 : https://sqlite.org/index.html SQLite는 클라이언트 응용 프로그램에 임베디드 되어 동작하는 DBMS 소프트웨어로서 퍼블릭 도메인 오픈 소스 소프트웨어로 android, iOS, macOS에 기본적으로 포함되어 있습니다. 그래서 SQL에서 하는 기능이 SQLite에선 '경량화'의 이유로 제한되는 경우가 많습니다. 예를 들자면, 프로토콜 조작을 통해 네트워크에 접근할 수는 있지만, 동시 접근은 제한됩니다. 또한 복잡하거나 큰 데이터를 보관하는 데에는 적절하지 않습니다. 또한 데이터베이스 이름 그대로 'lite'이기 때문에 성능은 기대를 하지 않는 것이 좋고, 한 번에 한 명의 사용자만이 데이터베이스를 사용할 수 있어서 멀티 유저를 지원하려면 p..

back end/java 2022.10.08

GitHub Copilot

GitHub Copilot? Github Copilot은 코드 자동 완성을 통해 Visual Studio, Visual Studio Code, Neovim, JetBrains 등의 통합 개발 환경 사용자를 지원하기 위해 Github가 2021년 출시한 자동 코드 완성 AI(인공지능)입니다. OpenAI의 GPT-3 모델을 이용하여 Github으 수많은 코드들을 학습시키는 방식으로 개발되었습니다. Github Copilot은 주석이나 함수 이름에 담긴 의미를 파악하여 코드를 자동 완성해, 단순하고 번거로운 작업을 자동화한다는 것이 특징인데, AI 코더들의 등장으로 인해 수준 낮은 코더들이 사라지고 프로그래머는 더욱 높은 전문성을 요구할 것으로 예상됩니다. 2022년 6월에 유료로 전환되었는데 가격은 월 1..

개발도구 2022.10.07

베네수엘라 경제 위기 | 베네수엘라가 망한 이유

코로나19, 기상이변, 우크라이나 전쟁, 미국의 금리 인상 등의 이유로 전 세계에 경제 위기가 찾아오고 있습니다. 미국, 영국 등 선진국들도 물가상승률(인플레이션)이 10%까지 나와서 난리가 났는데요. 이런 상황에 베네수엘라는 물가상승률이 222% '밖에' 안나와서 주목을 받고 있다고 합니다. 베네수엘라의 인플레이션 2018년도에 최대였는데 IMF의 자료 기준 최대 65,374%였고, 베네수엘라 국회에서는 무려 170만%(1,700,000%)라고 발표했습니다. 베네수엘라가 인플레이션이 어느정도였냐면 돈의 액수가 아닌 돈의 무게로 빵을 샀다고 하고 빵을 사고 남는 돈으로는 학을 접어서 팔 정도라고 했습니다. 베네수엘라 베네수엘라는 남아메리카 북부에 위치한 2020년 기준 인구 28,435,940명의 나라 ..

시사/경제 2022.10.06

jpa + querydsl + sqlite 페이징 처리 방법

JPA는 기본적으로 sqlite를 지원하지 않기 때문에 SQLDialect를 생성해야 합니다. 구글에 검색해보면 보통 아래 코드가 나옵니다. import java.sql.Types; import org.hibernate.dialect.Dialect; import org.hibernate.dialect.function.SQLFunctionTemplate; import org.hibernate.dialect.function.StandardSQLFunction; import org.hibernate.dialect.function.VarArgsSQLFunction; import org.hibernate.dialect.identity.IdentityColumnSupport; import org.hibernate...

Java Bean Validation 사용방법 - ControllerAdvice

개요 Validation은 개발 실무에서 가장 중요한 것 중 하나입니다. 클라이언트에서 잘못된 값이 전달되어 장애가 발생하는 것은 흔한 일입니다. Validation을 사전에 하지 않는다면 잘못된 인자 값으로 작업을 수행하다 오류가 발생할 수도 있고 심지어 오류가 발생하지 않고 잘못된 값이 데이터베이스에 저장되기도 합니다. 따라서 서버 API에서 parameter를 받자마자 validation을 해야 하지만 이것을 일일히 코딩하기에는 번거롭습니다. Java에서는 Jakarta Bean Validation을 이용할 수 있는데요. Annotation을 이용하여 Validation을 처리할 수 있는 방법입니다. Dependency implementation 'org.hibernate.validator:hibe..

back end/java 2022.10.03

[마이크로서비스] CQRS란?

CQRS란? CQRS란 Command and Query Responsibility Segregation의 약자로, Command와 Query(Select)의 역할을 구분한다는 것입니다. 다시 말해서 CRUD에서 CUD(Command)와 R(Query) 즉 Read와 Write의 책임을 분리한 것이 CQRS입니다. 왜 CQRS인가? 최초 설계한 도메인 모델은 시간이 지남에 따라 비즈니스가 다양해지며 저장되는 모습도 다양해지고 보는 것도 다양해집니다. 또한 읽기/쓰기 작업으로 인한 리소스 교착 상태가 발생할 수 있습니다. 사실 일반적인 비즈니스 모델에서는 입력, 수정, 삭제가 조회보다 적게 쓰이고 조회가 훨씬 많이 사용됩니다. 서비스 내에 모든 기능을 넣어 두면 조회의 성능을 확보하기 위해 쓰기에 해당하는 ..

Etc ( 기타 )/Etc 2022.10.02

[맥북/아이맥/맥미니] fn키 누르지 않고 F1 ~ F12키 사용하는 방법

맥북, 아이맥, 맥미니 등에서 키보드 위에 있는 F1 ~ F12까지의 Function key는 기본적으로 화면 밝기 조정, volume up, volume down e 등의 동작을 합니다. 우리가 일반적으로 알고 있는 본연의 F1 ~ F12키를 사용하려면 키보드 왼쪽 하단에 있는 fn키를 함께 눌러야 합니다. 이것을 우리가 일반적으로 알고 있는 windows 키보드 처럼 F1 본연의 기능을 하게 하려면 다음과 같이 하면 됩니다. fn키 누르지 않고 F1 ~ F12키 사용하는 방법 1. 시스템 환경설정(System Preferences)에 들어갑니다. 2. 키보드를 클릭합니다. 3. 키보드 탭을 클릭합니다. 4. "F1, F2 등의 키를 표준키로 사용"을 체크합니다. 여기까지 진행하면 일반적인 키보드 처럼..

OS/MacOS 2022.10.01

javascript에서 브라우저 종류 확인하는 방법

const agent = window.navigator.userAgent.toLowerCase(); let browserName; if(agent.indexOf("edge") > -1) { browserName = "MS Edge"; // 예전 MS edge } else if(agent.indexOf("edg/") > -1) { browserName = "크로미움 기반 Edge"; } else if(agent.indexOf("opr") > -1 && !!window.opr) { browserName = "Opera"; // 오페라 } else if(agent.indexOf("chrome") > -1 && !!window.chrome) { browserName = "chrome"; // 크롬 } else ..

728x90
반응형
loading