본문 바로가기

분류 전체보기

(209)
Spring html작업할 때 Livereload 쓰면 아주 편해요! HTML & CSS 공부나 스프링 프로젝트 중에서 html파일을 수정하고 확인할 때 Livereload를 이용하면 아주 편리하게 바로바로 반영되는 결과를 확인할 수 있다. 1. 의존성 추가 developmentOnly 'org.springframework.boot:spring-boot-devtools' gradle에 의존성을 추가해준다. 2.properties 파일 수정 spring.devtools.livereload.enabled=true properties 파일에 위와 같이 true로 변경해준다. 3. 구글 크롬에서 Livereload를설치한다. 설치하면 위와 같이 새로고침모양이 생기거나, 퍼즐 모양을 누르면 볼 수 있다. 4. Livereload를 실행해준다. 새로고침 모양 안에 초록섹 체크모양이 ..
쓰지않는 import문 지우는 단축키 Ctrl + Alt + O BaseControllerTest를 만들면서 기존의 test에서 쓰지않는 import문이 많아졌다. (좌측 그림) Ctrl + Alt + O 단축키를 누르면 우측의 그림처럼 자동으로 쓰지않는 import문을 삭제해준다.
Spring의 DI와 IoC에 대해 설명할 수 있나요? DI : Dependecy Injection 번역하면 의존성주입 이다. 예시를 들어서 설명해보자 컴퓨터가 있다. 컴퓨터를 살 때, 조립식 컴퓨터가 있고 그냥 완성품 컴퓨터를 살 수 있다. 조립식 컴퓨터를 산다고 할 때, 각각의 부품을 사서 컴퓨터에 끼우는 방식이다. 여기서 각각의 부품을 D : Dependency라고 볼 수 있다. 그리고 끼우는 과정을 I : Injection이라고 할 수 있다. 현실에서 부품을 사서 조립하는 과정을 돈 주고 맡기기도 하는 것 처럼 Spring이 조립을 해준다. 이 기능을 Spring의 핵심기능 중 하나인 DI라고 볼 수 있다. IoC : Inversion of Control 일체형 프로그램은 큰 단위로부터 작은 단위로 생성이 된다. 하지만 결합형 프로그램 (위에서 예시로..
Junit5에서 parmeter를 이용한 Test실행하기 Junit4와 Junit5에서는 parameter를 이용한 Test를 실행할 때 조금 다르다. Junit 4 : JunitParams 이용 @RunWith(JunitParams.class) public class EventTest { @Test @Parameters public void testFree(int basePrice, int maxPrice, boolean isFree) { Event event = Event.builder() .basePrice(basePrice) .maxPrice(maxPrice) .build(); event.update(); assertThat(event.isFree()).isEqualTo(isFree); } private Object[] parametersForTestF..
Transaction에 대해서 아시나요? 모르겠습니다. 내 대답이었다. 내 첫 면접에서의 질문 중 하나였다. 쓰는 것도 많이 봤지만 정확히 어떤 기능인지 몰랐고 굳이 알려고 하지도 않았었다. 공부해야할 것들이 엄청나게 많다. 그리고 이제 결과만 쫓는 형태가 아니라 HOW를 알아야 한다고 생각이 든다. Transaction 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들을 의미 즉, 병행 제어 시 처리되는 작업의 논리적 단위 모든 작업이 성공한다면 완료 작업 상태를 모두 반영하고, 이것을 Commit, 반면, 하나라도 실패하게 된다면 모든 사항을 폐기하고, 이것을 Rollback. Transaction의 4가지 성질 ACID ✔️ Atomicity 원자성 : 한 트랜잭션 내의 실행 작업은 하나의 단위로 처리 즉, 모두 성공..
SSR과 CSR 지금까지 사이트를 만들면서 api의 필요성을 크게 느끼지 못했다. 그 이유는 항상 SSR로 페이지를 만들어서 내가 html페이지도 만들고 백엔드도 만들었기 때문이다. 하지만 추후에 프론트와 협업을 하려면 api의 필요성을 느꼈고 이 과정에서 SSR이 뭔지 CSR이 뭔지에 대해서 공부했다. 먼저 SSR은 서버측에서 랜더링한 페이지를 보내주는 방식이다. 쉽게 말해서 서버에서 완성된 html 파일을 가지고 있는 방식이다. 그리고 나는 지금까지 SSR방식만 사용해왔다. 그리고 CSR방식은 서버에서 완성된 html파일이 아니라 클라이언트 측에서 js파일을 다운받아 랜더링하는 방식이다. SSR과 CSR의 차이 1. 첫 페이지 로딩시간의 차이 - SSR은 완성되어있는 페이지를 불러오기 때문에 빠르다. 하지만 CSR은..
JSON 응답에서 한글 깨질 때 해결 방법 @Controller @RequestMapping(value = "/api/events", produces= MediaTypes.HAL_JSON_VALUE) @RequiredArgsConstructor JSON 응답에서 한글응답이 깨지는 현상이 발생했다. 스프링부트 버전 2.2.5 이상은 MediaTypes.HAL_JSON_UTF8_VALUE -> MediaTypes.HAL_JSON_VALUE 로 변경 되었다. 그래서 응답을 보면 아래 그림과 같이 깨지는 형태를 볼 수 있다. @Controller @RequestMapping(value = "/api/events", produces = "application/hal+json; charset=UTF-8") @RequiredArgsConstructor 위에서..
Rest API가 뭘까요? Rest API라는 단어는 많이 들어봤지만 이게 뭔지는 몰랐다. 그래서 아주 가볍게 소개하는 영상을 보고 이 글을 쓴다. Rest API는 개발자들이 정보들을 주고받는 일종의 형식이라고 볼 수 있다. 먼저 API는 Application Programming Interface의 약자로 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단이다. 외부 API(알라딘, 카카오 등) 을 이용해봤으면 쉽게 알 수 있다. 정해진 형식을 요청하면 API에서 알아서 원하는 결과값을 반환해준다. 그렇다면 RestAPI는 뭘까? RestAPI는 각 요청이 어떤 동작이나 정보를 위한 것 인지를 요청의 모습 자체로 추론 가능한 형식이다. 예를 들자면 get은 정보를 읽기, post는 새로운 정보를..