본문 바로가기

전체 글

(69)
준 강의 - 프론트엔드 기본 꿀팁 ⚙️ 1. 네이밍 컨벤션 및 포매팅 자바스크립트는 유연한 성격을 가지고 있어서 팀마다, 개인마다 컨벤션이나 스타일이 많이 다를 수 있다. 프론트엔드 진영에서 프론트엔드 팀이 유명한 NHN Ent의 Toast UI에서 정리해준 코딩컨벤션을 참고해보자! 🎨 2. 코드를 자신있게, 아름답게! eslint, prettier 1) eslint 린트(lint)는 소스 코드에 문제가 있는지 탐색하는 작업을 의미하며, 린터(linter)는 이 작업을 도와주는 소프트웨어를 말한다. 자바스크립트와 같이 컴파일 과정이 없는 인터프리터 언어의 경우, 런타임 에러가 발생할 확률이 높기 때문에, 이 린트 작업을 통해 사전에 에러를 최대한 잡아줄 수 있다. 그 중 eslint는 자바스크립트진영의 오픈소스로 확장되고 있는 정적 분석..
정적팩토리 메서드 명명 규칙 from 매개변수를 하나 받아서 해당 타입의 인스턴스를 반환하는 형변환 메서드 ex) Date d = Date.from(instant); of 여러 매개변수를 받아 적합한 타입의 인스턴스를 반환하는 집계 메서드 ex) Set faceCards = EnumSet.of(JACK, QUEEN, KING); valueOf from과 of의 더 자세한 버전 ex) BigInteger prime = BigInteger.valueOf(Integer.MAX_VALUE); instance 혹은 getInstance (매개변수를 받는다면) 매개변수로 명시한 인스턴스를 반환하지만, 같은 인스턴스임을 보장하지는 않는다. ex) StackWalker luke = StackWalker.getInstance(options); cr..
백엔드에서 발생한 에러메세지, fetch API 로 받기 스프링을 공부하다가 백엔드에서 Exception이 발생할 때 에러 메시지를 프론트에서 받아오는 방법을 찾아보았다. 환경 @RestController public class LineController { ... @PostMapping("/lines") public ResponseEntity createLine(@RequestBody LineRequest lineRequest) { Line line = LineRequest.toLine(lineRequest); Line savedLine = lineService.save(line); return ResponseEntity.created(URI.create("/lines/" + savedLine.getId())) .body(savedLine); } ... @E..
api 설계 리소스 타입(resource archetypes)별 표현 document collection store controller Document 객체 인스터스와 유사한 단일 개념 단수개의 리소스를 표현 /resources/{id} /resources/{id}/sub-resources/{id} Collection 리소스의 디렉토리를 의밈 복수를 사용하여 표현 /resources /resources/{id}/sub-resources Store 서버가 아닌 클라이언트가 관리하는 리소스 document와의 차이는 고유식별자가 없음 복수를 사용하여 표현 /resources/{id}/path Controller 절차라는 개념의 리소스 실행가능한 함수와 유사 매개 변수와 반환 값이 존재 동사를 사용해도 좋음 /resour..
Spring / @RequestBody vs @RequestParam 이해하기 컨트롤러에서 데이터를 인자에 할당하는 대표적인 방법으로는 @RequestBody 와 @RequestParam 이 있다. @Controller public class UserController { @PostMapping("/receive") public String age(@RequestParam String name) { System.out.println("통신 성공"); System.out.println(">>> " + name); return "index"; } } @Controller public class UserController { @PostMapping("/receive") public String age(@RequestBody String name) { System.out.println("..
Spring / Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'Window' : Request with GET/HEAD method cannot have body. fetch api 를 이용하여 @RequestBody 와 @RequestParam 을 실습해보려고 했는데 왠일인지 그전에 오류를 만나게 되었다. 실습 환경 먼저 데이터를 전송하기위해 간단한 버튼하나를 만들었다. 데이터 전송 왼쪽의 '데이터 전송' 버튼을 누르면 { name : "홍길동" age : "13" } 의 데이터가 전송된다. 데이터를 받는 컨트롤러 또한 다음과 같이 구현해 주었다. 컨트롤러 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestBody; @Cont..
모던자바인액션 / 6장 스트림으로 데이터 수집(처리) 정리 6장 스트림으로 데이터 수집(처리) 정리 스트림은 중간 연산과 최종 연산으로 구성되어있다. List vegetarianMenu = menu.stream().filter(Dish::isVegetarian).collect(toList()); 위 코드는 중간연산 filter 와 최종 연산 collect 으로 이루어져 있다. collect()에 toList() 를 적용하여 리스트 컬렉션으로 만드는데 방법에는 익숙하다. 이번 장에서는 추가적으로 다른 사용 가능한 방식에 대해 공부해본다. 목차 그룹화 분할 리듀싱 1. 그룹화 groupingBy 메서드를 이용하면 데이터를 하나 이상의 특성으로 분류할 수 있다. 이번 포스팅에서는 예시를 위해 다음과 같은 데이터를 이용한다는 점을 참고하자. 예시 데이터 public c..
스프링부트 어노테이션 / @PathVariable @PathVariable? import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @Controller public class UserController { @GetMapping("/user/{userName}") public String user(@PathVariable String userName){ System.out.println(userName); return "index"; } } @PathVariable 사용의 예시이다. 여기서 주목해야할 점은 @..