사용자가 로그인 요청을 보낸 후, 결과(성공/실패)에 따라 적절히 다른 페이지로 이동하도록 API를 작성하던 중 다음과 같은 질문이 생겼습니다.사용자가 로그인에 성공하면 '/', 실패하면 '/login/error' 페이지로 이동한다고 가정해봅시다. 아래의 방법 중 어떤
MySQL을 통해 DDL을 먼저 작성한 후 JPA에서 entity를 설계하던 중, JPA constraints와 validation의 차이를 모르고 있다는 것을 알게 되었습니다.개발 단계에서는 자동 생성된 ddl을 그대로 이용하기도 하지만, 실제 운영 시에는 최적화를
배포를 목표로 새로운 프로젝트를 진행하기 시작했습니다. 이전의 프로젝트들과 달리 실제 배포를 목표로 진행하는 프로젝트이므로, 로그인 기능부터 확실하게 구현하고자 합니다. 이 글에서는 본격적으로 개발하기에 앞서 고민한 점들을 정리해두겠습니다. 풀스택으로 개발하고 운영을
AWS에 서비스를 배포하는 방법을 간단하게 정리해보겠습니다. 배포를 처음 경험해서 잊지 않기 위해 개념적으로 정리한 글이라, 보다 자세한 내용이 궁금하신 분들은 아래 글을 참고하시면 되겠습니다. https://choppadontbiteme.tistory.com
지금까지는 웹 서버를 만들면서 서버 사이드 렌더링 방식만 이용했고, REST API를 제대로 다뤄본 경험이 없었습니다.따라서 REST API와 리액트 또는 뷰를 이용하는 프로젝트를 계획하고 하던 중 다음과 같은 의문이 떠올랐습니다.'REST API는 stateless
최근 그래프 쪽 알고리즘 문제를 풀다가 인접리스트에서 LinkedList 대신 HashMap을 쓰면 더 효율적이지 않을까하는 생각이 들었고, 관련 내용에 대해 찾아봤지만 생각보다는 이에 대한 논의가 적고, 뚜렷한 결론이 없었다.그래도 몇 개의 글을 통해 정리할 수 있어
List를 사용할 일이 많은데, ArrayList와 LinkedList 중 어떠한 것을 선택하는 것이 좋을지 정리해보겠습니다. (※ JAVA를 기준으로 작성한 글입니다.)1\. ArrayList(2. LinkedList(3. 비교(4. 결론(기본적으로 ArrayList
코딩하다보면 실수형을 다룰 일이 많은데, 비교 등을 수행할 때 맞게 하고 있는지 항상 찝찝했어서 이번에 한번 정리해보려고 합니다. > 1. 실수를 다룰 때 주의할 점 2. compare 메서드 3. epsilon 4. BigDecimal 1. 실수를 다룰 때 주의할
스프링부트로 편하게 개발이 가능하다 보니 그 기반이 되는 기술인 서블릿(servlet) 등에 대해 잘 모르고 있었습니다.따라서 이번에 서블릿과 WAS에 대해 정리해보고 스프링에서의 구조를 살펴보겠습니다.먼저 웹 서버와 WAS의 차이를 살펴보겠습니다.초창기의 웹 서버는
JS에서 변수를 var을 통해 선언하는 것과 let을 통해 선언하는 것의 차이 중, scope의 차이에 대해서 살펴보겠습니다. 먼저 var를 사용해서 문제를 겪었던 상황을 살펴보겠습니다. 동적으로 버튼을 3개 만들고, 클릭 시 i번째 버튼이 alert(i)를 호출하는
AJAX 방식으로 서버에 직접 form을 전송하는 방법에 대해 정리해보겠습니다.Form에 포함된 파일이나 이미지 등을 서버로 간단하게 전송할 수 있습니다. fetch API를 통해 데이터를 전송할 때, FormData 객체를 생성하여 전달하면 form을 전달할 수 있습
클라이언트와 서버와 JSON을 주고 받는 방법에 대해 정리해보겠습니다. JS의 Fetch API를 통해 JSON 형태로 데이터를 전달하는 방법입니다. 클라이언트에서 데이터를 JSON으로 전달하고, JSON 형태로 받아서 처리하는 예시입니다. (1) const data
※본 글은 김영한님의 '자바 스프링 완전정복 시리즈' 강의를 바탕으로 작성한 글입니다.이번엔 스프링 컨테이너가 제공하는 스코프 중 하나인 웹 스코프 중 request 스코프에 대해 알아보겠습니다.request 스코프로 관리되는 빈은 ① 스코프의 소멸까지 스프링이 관리하
※본 글은 김영한님의 '자바 스프링 완전정복 시리즈' 강의를 바탕으로 작성한 글입니다.스프링에서 빈을 기본적으로 싱글톤으로 관리하고, 대부분의 경우 싱글톤이 필요하지만, 그렇다고 싱글톤만 사용되는 것은 아닙니다. 그 외에도 다양한 스코프가 존재하고, 이번에는 프로토타입
※본 글은 김영한님의 '자바 스프링 완전정복 시리즈' 강의를 바탕으로 작성한 글입니다.이번에는 스프링 빈이 싱글톤 빈이 관리되는 라이프사이클에 대해 정리해보겠습니다.기본적으로 싱글톤 빈은 빈의 생성부터 소멸까지 스프링에서 계속해서 관리를 하게 됩니다. 관리되는 라이프
※본 글은 김영한님의 '자바 스프링 완전정복 시리즈' 강의를 바탕으로 작성한 글입니다.@Bean을 이용해서 수동으로 빈을 등록하고 조립할 수도 있지만, 관리하는 빈이 많아지면 일일이 관리하는 것이 꽤 귀찮을 것입니다. 그럴때 필요한 기능이 컴포넌트 스캔입니다.(@Com
※본 글은 김영한님의 '자바 스프링 완전정복 시리즈' 강의를 바탕으로 작성한 글입니다.싱글톤 방식이란 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴입니다.스프링 컨테이너는 기본적으로 빈을 싱글톤으로 관리하고, 실제로 대부분의 경우 싱글톤 방식이 필요
※본 글은 김영한님의 '자바 스프링 완전정복 시리즈' 강의를 바탕으로 작성한 글입니다.당연하게도 작성한 코드가 정상적으로 동작하는지 여부를 확인하는 것은 매우 중요합니다. 요즘에는 스프링 프로젝트를 생성하면 src/test 폴더가 자동으로 생성될 정도이고, 대부분의 프
※본 글은 김영한님의 '자바 스프링 완전정복 시리즈' 강의를 바탕으로 작성한 글입니다.스프링을 단순히 웹 프로그래밍을 도와주는 프레임워크라고 생각할 수도 있지만, 그 본질은 객체 지향 프로그래밍에 있습니다. 앞서 좋은 객체 지향 설계를 위한 5가지 원칙, SOLID를
※본 글은 김영한님의 '자바 스프링 완전정복 시리즈' 강의를 바탕으로 작성한 글입니다.' 좋은 객체 지향 설계의 5가지 원칙(SOLID)를 정리한 내용입니다.