[개발] 기록(48)
-
파이어스토어 + 리액트
파이어 스토어 파이어 스토어에 아이디 지정해서 도큐먼트 생성 firestore.collection(“TODO”).doc(”myCustomId”).set({ … }); 아이디 자동 생성해서 도큐먼트 생성 firestore.collection(“TODO”).add({ … }); 파이어 스토어에서 문서가 없는 콜렉션은 삭제가된다. 파이어 스토어는 기본적으로 아이디에 의해 정렬된다. 배포 리액트를 이용해서 SPA 로 빌드하고 이를 파이어베이스로 배포하기 npm build npm install -g firebase-tools firebase login firebase init React 의 빌드 결과로 SPA 파일이 build 폴더 밑에 생긴다. 따라서 firebase cli 로 배포하려는 폴더를 지정할 때 bu..
2020.02.09 -
자바스크립트 기초
Form에서 데이터를 전달하면 기본적으로 페이지가 리로딩된다. 클래스안의 메소드는 일반적으로 바인딩을 해줘야 가능하지만 아래와 같이 사용하면 자동 바인딩을 해준다.deleteHandler() { // 바인딩이 필요하다. ... }deleteHandler = () => { // 바인딩할 필요가 없다. ... }
2020.02.09 -
Parallel stream 과 Map
1. parallelStream + forEach 로 HashMap 을 collect 하려할 경우 원하는 결과가 안나올 수 있다. Map dataIdMap = new HashMap(); events .parallelStream() .forEach(data -> { dataIdMap.put(data.getId(), data); }); HashMap 은 Thread safe 하지 않다. 해결법 1 : ConcurrentHashMap 을 사용한다. 해결법 2 : stream 을 사용한다. Map dataIdMap = new HashMap(); events .stream() .forEach(data -> { dataIdMap.put(data.getId(), data); }); 해결법 3 : 자바 8의 colle..
2020.01.07 -
JsonTypeInfo, JsonSubTypes : 필드 값에 따라 파싱 타입 결정하기
도형의 type 에따라 object 를 알맞은 타입으로 serialize, deserialize 한다. @Data @JsonTypeInfo( use= JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", visible = true) @JsonSubTypes({ @JsonSubTypes.Type(value = Rectangle.class, name = "rectangle"), @JsonSubTypes.Type(value = Circle.class, name = "circle"), }) public abstract class Shape { private String type; } @Data @NoArgsConstructor ..
2019.10.23 -
Already had POJO for id 에러
* 무한 재귀 참조를 방지하는 다른 해결책으로는 다음과 같은 것들이있다. JsonIgnore JsonIdentityInfo JsonManagedReference & JsonBackReference JsonIdentityInfo : deserialize 할 때 객체간에 양방향 참조를 하는 경우 무한 재귀 참조가 되는 문제를 해결하기 위해 나온 어노테이션. 객체 내부에 Id 필드와 같이 unique 한 값이 있을 때 사용할 수 있다. Jackson 에서 요청받은 json 을 deserialize 를 수행할 때 같은 타입에 대하여 Id 필드가 같은 json 요청이 발견될 경우 기존에 deserialize 해놓은 객체를 이용한다. 중요) JsonIdentityInfo 의 serialize 형태는 흔히 생각하는 ..
2019.08.05 -
java -jar 로 application.yml 오버라이딩
application.yml playground: myValue: 32 myBool: false TestController.java @RestController @RequestMapping public class TestController { @Value("${playground.myValue}") private int propertyTest; @Value("${playground.myBool}") private boolean propertyBool; @GetMapping("/") public void indexHandler(){ System.out.println("@@@@ propertyTest : " + propertyTest); System.out.println("@@@@ propertyBool :..
2019.07.04