22.11.30.(수)~ 12.02.(금) TIL- 삽질의 연속

22.11.30.(수)~ 12.02.(금) TIL- 삽질의 연속

11.30.(수) ~ 12.02.(금)

  • 출근하기 전에 <실전! 스프링 부트와 JPA 활용2> 강의들었다. 주문조회 API를 Entity로 노출하는 것와 DTO로 노출하는 것, 그리고 fetch 조인에 관한 강의 3편을 들었다. 강의 시작 할 때 JPA를 완전히 이해하고 들으라고 했다. 하지만 일단 강의를 듣고 나중에 실습하면서 이해할려고 했다. 그래도 일단 이해한 것은 entity로 그냥 노출시키면 relation 관계에서 무한로딩이 빠질 수 있다는 점이었다. 해결 방법은 해당 entity 필드 양쪽 중 한 곳 에@JsonIgnore를 처리해야한다. 게다가 relation 걸린 수 많큼 1+N의 쿼리가 나가는데 이럴 때 fetch join을 사용하면 쿼리가 한 번만 나갈 수 있다.

    • JPA를 실무에서 많이 사용하고 편하다고는 사용하기 위해서는 공부를 많이 해야 될 것 같다는 생각이 들었다.

    • 우선 사내에서는 mybatis를 사용하니 우선 거기에 익숙해지고 천천히 JPA를 공부해보아야 겠다.

 

  • 회사에서는 이제 세팅된 스프링부트 코드 해석하고 테스트로 패키지를 따로 만들어서 그 안에 Controller, Mapper, Service, Repository, Entity 등을 다 넣어서 테스트 했다. 하지만 에러가 발생했는데 알고보니 MapperScan, EntityScan가 설정된 경로 외 다른 곳에 패키지를 만들어서 실행이 안되었다. 처음 접해보는거라 삽질을 많이한다.

 

  • 게다가 테스트로 코드 작성하는 것도 오래 걸리고 나의 뇌가 버벅되어 생산성이 안 나오는 느낌이었다. 빨리 익숙해져야지... VSCode 쓰다가 intelliJ 잠깐 쓰다가 STS쓰니까 단축키 버퍼링도 온다...

  • 또한 Redis를 사용하여 토큰 값을 저장하였다. Redis 이야기는 많이 들어보았다. 하지만 사용하지는 않아서 다른 DB랑 똑같은 줄 알았다. Redis를 파고보니 key-value로 데이터를 저장하는 DB였다. 이렇게 새로운 사실을 알고나면 신기하지만 이걸 왜 아직까지 몰랐을까라고 생각하면 아찔하다.

 

  • 또 Rest API를 사용하기 위해서 restTemplate를 사용해보았다. 세팅된 코드에는 RestTemplate를 @Configurete로 저장하여서 사용하였다. 이걸 인스턴스로 어떻게 꺼내어 사용하까 고민했는데 다른 분에게 물어보니 @Autowired로 사용해서 꺼내쓰면 된다고 하였다. 왜 그 생각을 못했을까... 이렇게 다시 Spring Container에 대해 배운 것이 생각이 났다. 이제 안 까먹겠지?

    • restTemplate.exchage 쓰려다가 안되서 어짜피 post로 외부 API 받아올거라 restTemplate.postForEntity로 사용했다.

    • JS에서 Axios를 사용했는데 사용법이 좀 다른 것 같다. 근데 이것도 익숙해지면 편해지겠지?

 

 

  • 요약

    • 삽질을 많이했다. 코드 작성하는 속도가 느리다. 뇌가 버벅거린다. 나만의 단축키를 하나 만들어서 다른 코드 편집기를 사용하더라도 그거를 적용해야겠다.

    • 이제 담주부터 프로젝트 진도 나가겠지? 너무 떨린다... 근데 빨리 프로젝트하고 싶기도 하다. 배운 걸 빨리 써먹고 싶다.

 

 

 

 

댓글을 작성해보세요.