분류 전체보기 954

78. 컨버전서비스 실제 사용

저번시간에 컨버터를 컨버전서비스에 등록하는 것 까지 해봤는데, 그래도 쓸 때는 우리가 직접 컨버전서비스를 생성해서 사용해서 불편했다. 무슨 말이냐 하면, 스프링에 등록하면 @RequestParam 이런 곳에도 자동으로 적용되어 우리가 등록한 컨버트 로직을 수행한다. 등록하는 방법은 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addFormatters(FormatterRegistry registry) { registry.addConverter(new StringToIntegerConverter()); registry.addConverter(new IntegerToStringConverter(..

77. 컨버전 서비스

우리가 정의한 컨버터를 직접 호출해서 썼다. 하지만 일일히 이렇게 호출해서 쓰면 굳이 스프링의 컨버터를 상속받아 사용한 의미가 없다. 이런 컨버터들을 모아서 관리해주는 것이 바로 컨버전 서비스이다. 이것도 어댑터 패턴이다. public interface ConversionService { boolean canConvert(@Nullable Class sourceType, Class targetType); boolean canConvert(@Nullable TypeDescriptor sourceType, TypeDescriptor targetType); @Nullable T convert(@Nullable Object source, Class targetType); @Nullable Object conve..

76. 스프링 타입컨버터

스프링은 컨버터 인터페이스를 제공해 준다. 되게 간단하다. public class StringToIntegerConverter implements Converter { @Override public Integer convert(String source) { return Integer.valueOf(source); } } Converter 이렇게 해서, convert라는 메소드를 @override 하면 된다. 그 안에 작업해서 return 해 버리면 된다. 예를들어, String 타입으로 들어온 것을 우리가 만든 IpPort 객체로 Convert 한다고 하면, @Getter @EqualsAndHashCode public class IpPort { private String ip; private int po..

75. 스프링의 자동 타입 변환

타입 컨버터는 말 그대로 타입을 바꿔주는. 문자 -> 숫자 등 타입을 변환해 줘야 할 일은 상당히 많다. 요청메시지의 모든 파라미터의 값은 사실 문자이다. @GetMapping("/hello-v1") public String helloV1(HttpServletRequest request){ String data = request.getParameter("data"); Integer intValue = Integer.valueOf(data); System.out.println("intValue = " + intValue); return "ok"; } 그렇기에 이렇게 필요에 따라 숫자로 변환 해 줘야 한다. 근데 아무래도 스프링은 이런 것을 자동으로 해 준다. 예시로 @GetMapping("/hello-v2..

Set

Set은 ES6에서 새로 나온 콜렉션인데, 중복되는 값이 담기는 것을 막아주는 콜렉션이다. const set = new Set(); set.add('one'); set.add('two'); set.add('one'); console.log(set); one이 하나만 들어간다. console.log(set.has('one')); 'one'이라는 값이 있는지 검사. set.delete('one') 'one'을 삭제. 얘는 사이즈를 size()도 아니고 size로 앎. 변수로 되어 있음. const arr = [1,2,3,2,2,5,4,4,3,2]; console.log(new Set(arr)); 배열을 Set으로 바꾼다. Set 특성 상 중복은 하나만 남는다. const array = Array.from(s..

v-bind, data()

{{ count }} export default{ data() { return { count : 0, styleColor: { fontSize : '50px', color : 'red' } } }, } v-bind는 html의 속성인 id,class, style등에 값을 연결할 수 있다. 또 그것들 뿐 아니라, script 파트에서 props:{} 안에 정의해 둔 속성(필드)들에게 또한 값을 할당할 수 있다. 또, {{ count }} 이렇게 줄일 수 있다. 그냥 :속성=값 하면 된다. 아래 data()는, 저기다가 변수를 정의하는 거라고 생각하면 된다. data(){ return { 키:값 } } 형태로 해 두면 된다. 보면 style도 저 v-bind를 통해서 값으로 줬는데, 객체로 정의해서 줬다. ..

Vue.js 2023.09.20

axios 서버에서 데이터 가져오기.

axios 또한, Promise를 반환한다고 한다. https://qwefdg3.tistory.com/363 fetch로 서버로부터 데이터를 받아와 동적으로 html 추가 qwefdg3.tistory.com 이건 fetch로 했던 거 그리고 또, fetch보다 더 쉽다. 더 많은 편의기능을 제공한다고 한다. 업그레이드버전? 이라고 보는 것도 맞겠다. Node.js에서도 둘 다 패키지 설치해서 사용할 수 있지만, 편의기능이 더 많은 Axios가 더 인기가 많다. axios.get(SERVER_PATH) .then(_response=>{ console.log(_response.data); }).catch(e=>{ console.log(e); }); get이 fetch라고 보면 된다. 근데 내부적으로 asyn..