Spring에서 GraphQL 사용해보기
🤔 GraphQL이란? GraphQL은 페이스북에서 만든 API를 위한 쿼리 언어이다. 예를 들어 스포티파이에서 아이들을 검색하면 아티스트, 앨범, 곡 등 다양한 데이터에 대한 결과를 노출한다. REST API를 이용한다면 해당 화면을 구성하기 위해 여러 개의 엔드포인트에 검색 요청을 해야할 것이다. GET https://www.spotif...
🤔 GraphQL이란? GraphQL은 페이스북에서 만든 API를 위한 쿼리 언어이다. 예를 들어 스포티파이에서 아이들을 검색하면 아티스트, 앨범, 곡 등 다양한 데이터에 대한 결과를 노출한다. REST API를 이용한다면 해당 화면을 구성하기 위해 여러 개의 엔드포인트에 검색 요청을 해야할 것이다. GET https://www.spotif...
JAR 파일 복사해서 서버 띄우기 1. 서버 빌드 $ ./gradlew clean build 2. JAR 파일 원격지에 복사하기 나는 홈에 ec2서버를 설정하였기에 홈으로 하였다. # scp <jar 파일 경로> <host 이름>:<파일이 저장될 ec2 실행경로> $ scp build/libs/TeybatGu...
최근 면접을 보면서 Spring Security에서 Session 방식과 JWT 방식의 차이점을 상태유지 관점에서 설명해달라는 질문을 들었다. 나는 동작방식에 대해서만 알았는데 상태유지 관점이라니.. 면접이 끝나고 면접 질문들을 복기하면서 찾아보았다. 그저 머리로만 알고 있었던 내용을 정리하면서 새로운 내용도 알아보려 한다. Spring Securi...
AWS로 시작하는 인프라 구축의 정석을 읽고 정리한 글입니다. 사용자가 늘어날 경우 1대의 웹 서버로는 요청을 깔끔하게 처리할 수 없는 경우가 있다. 이럴 때는 웹 서버를 여러 대 준비해서 성능을 높이는 방법을 이용할 수 있다. 이렇게 성능을 향상하는 방식을 스케일 아웃scale-out이라 부른다. 주요 역할 로드밸런서load bala...
인스턴스에 접속하기 먼저 pem 키 파일의 권한을 변경한다. $ chmod 600 pem-name.pem 그리고 아래의 명령어를 사용하여 ec2에 접속한다. AWS 인스턴스의 종류에 따라 사용자 이름(ec2-user)의 이름이 달라지므로 인스턴스 종류를 잘 확인하고 적어넣는다. $ ssh -i <pem경로> ec2-user@<...
📌 JWT 토큰 관리 JWT Token을 관리하려면 어떻게 하는 것이 좋을까? 기존에 JWT를 이용해서 로그인/회원가입 기능을 개선시킨 경험이 있다. Access Token과 Refresh Token을 발급하여 Token의 수명이 다 하면 새 Token을 발급해주면 된다. 나는 이 Token들을 관리하기 위해 Redis를 사용하였다. RedisCo...
Querydsl Spring으로 개발을 하다 보면 JPA만으론 안될 때가 많다. 나 같은 경우에는 requestBody에 있는 값이 null인지 아닌지 여부에 따라 데이터를 조회하는 경우 어떻게 처리할까 고민하다가 querydsl을 사용하게 되었다. querydsl을 사용해서 동적 쿼리를 생성하면 비즈니스 로직에서 null을 검사할 필요 없이 직관적...
객체지향의 사실과 오해를 읽고 정리한 글입니다. 책임감 분산(diffusion of responsibility): 사건에 대한 목격자가 많으면 많을수록 개인이 느끼는 책임감은 적어진다. 자율적인 책임 설계의 품질을 좌우하는 책임 자율적인 객체란 스스로 정한 원칙에 따라 판단하고 스스로의 의지를 기반으로 행동하는 객체이다. 자율...
캡스톤디자인 프로젝트를 하던 중 우아한 테크코스가 열려 신청하게 되었다. 신청 후 1달간 프리코스를 진행하였는데, 여러 요구사항과 제약사항에 맞춰 기능을 개발해야 했다. 캡스톤 팀원들도 같이 프리코스에 참여하였기에 모여서 새벽까지 프리코스 과제를 한 적도 많았다. 사실 4주차가 끝나는 주 주말에 바로 회고글을 작성하려 했으나 4주차 과제가 끝난 ...
모던 자바 인 액션을 읽고 정리한 글입니다. 람다란 무엇인가? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 익명 보통의 메서드와 달리 이름이 없으므로 익명이라 표현한다. 구현해야 할 코드에 대한 걱정거리가 줄어든다. 함수 람...