목록웹 프로그래밍 (66)
코딩하는 문과생

프로젝트 투입 전 약간의 시간이 있어, 스프링을 전체적으로 정리중에 있다. 그중 스프링 검증과 예외처리에 대해 한번의 정리가 필요한 것 같아 그 내용을 정리해보려고 한다. 원론적인 이야기는 배제하고, 실무적으로 필요한 것만 정리한 내용이다. [Spring AOP] Spring은 공통 관심사와 비즈니스 로직을 분리할 수 있도록 AOP기능을 제공한다. 즉, 비즈니스 로직에 모든 것을 담으려하지 않고, 예외처리나 로깅 등은 공통 관심사로 뽑아내어 로직을 만들어 핵심 비즈니스 변경 시 영향도를 최대한 줄이고자 한다. [포인트 컷과 어드바이스] 조인 포인트(Join point) Advice가 적용될 수 있는 위치. AOP를 적용할 수 있는 모든 지점. 스프링 AOP는 프록시 방식을 사용하기 때문에 조인 포인트는 ..

[서론] 2022년 4월 쯤, 관세청이 7월부터 새로운 면세혜택을 도입하는 정책을 발표했다. 정책의 골자는 외국인의 국내 몰 이용 시 면세혜택을 제공하기로 하는 정책인데, 간단히 말해 한국인이 더 저렴하게 구입하기 위해 '직구'를 하는 것 처럼, 외국인이 한국몰을 이용할때 관세 혜택을 부여하는 정책이다. 현장에서는 줄여서 '역직구'라는 단어를 사용한다. 어쨌든, 새로운 신고가 도입되는 만큼 영향도 파악도 해야 했고, 특히 B2C같은 경우 알리바바(차이냐오) 물류 시스템과 I/F 하는 로직을 새롭게 구성해야 했었다. 그걸 어쩌다보니 내가 맡게 됬고, 삽질을 너무 많이 해서 다음의 누군가는 이런 삽질을 안했으면 하는 바람에 삽질기를 정리해보려고 한다. 오늘 마지막 이슈 해결을 끝으로 내일 통합 테스트와 차주..

[NestJS] NestJS를 보면서 가장 크게 느낀 점은 스프링부트와 비슷한 점이 되게 많다는 것이다. Controller와 Service가 있고, DB연결 시 Active Record패턴(entity에 바로 접근)을 이용하거나 Data Mapper패턴(Repository 설정하여 접근)을 사용한다는 점에서 많이 비슷함을 느꼈다. 또한 스프링부트에서 사용하는 어노테이션(@)을 NestJS애서는 데코레이터(@)라고 불리며, 데코레이터를 통해 쉽게 오브젝트와 각 레이어를 정의할 수 있다. 또한 명령어로 쉽게 module, controller 등을 생성할 수 있으며, 그 예시는 아래와 같다. $ nest g co posts $ nest g mo posts //g: generate, co: controller..
[서론] 리액트의 가장 큰 특징은 화면의 효율적인 렌더링을 위해 가상 DOM을 이용하며, 상태(State)라는 객체(Object)를 통해 컴포넌트를 제어한다는 점이다. 과거 동아리 교육 당시에는 State를 관리하기 위해 클래스 컴포넌트가 필수적이었고, this.setState를 이용해 상태를 제어할 수 밖에 없었지만, 한 화면 내 여러 상태의 관리의 필요성이 대두되면서 중앙저장소에 상태를 관리할 수 있게 하는 Redux가 나오게 되었다. Redux의 가장 큰 특징은 상태(State)에 각 컴포넌트의 직접 접근이 허용된다는 점이다. 그러나 클래스 컴포넌트는 여전히 상태관리를 하기에는 복잡도가 너무 높았고, 그에 따른 대안으로 함수형 컴포넌트에서 쉽게 상태를 관리하기 위해 훅(Hook)이 점차 주목받기 시..