본문 바로가기
반응형

공부378

[springboot] @Valid 를 이용해 request 시 필수파라미터 체크하기 spring으로 웹 or API 서버를 구축하다보면 필수 파라미터를 체크해야 하는 부분이 있다. 이전까지만 해도 Controller 나 Service에 파라미터를 직접 체크하는 로직을 구현했었는데, Spring에서 제공하는 Validation을 이용하면 쉽게 유효검증이 가능하다는 것을 알았다. 이참에 관련 내용을 정리하고자 한다. 여기서는 gradle, springboot를 이용했으며 테스트는 junit5를 이용했다. gradle 설정 dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-web' // validation 추가 implementation 'org.springframework.boot:spring-bo.. 2020. 6. 23.
[aws] EC2 에 JAVA 버전 11로 업데이트 하기 회사에서 상용서버에서 쓰는 자바버전은 8인데 개발할때 버전을 11로 두고 했다가 이번에 사고가 났다. 버전이 달라 이전에 호환되던것이 호환되지 않으면서 에러가 발생한 것. 그렇다고 수정한 코드를 돌려놓을 수 있을 상황이 아니라서 서버에 있는 자바 버전을 올리기로 했다. AWS에 EC2 올린 이미지는 Amazon Linux 2 AMI 다. 패키지를 업데이트 한다 sudo yum install java-11-amazon-corretto-headless y를 눌러 설치를 완료한다. 이제 자바 버전을 스위칭한다. sudo alternatives --config java 명령어를 입력하면 다음과 같이 설치되어있는 자바버전 목록과 현재 활성화 되어 있는 것을 알려준다. 새로 설치한 것은 2번이므로 번호 입력에 2번.. 2020. 6. 18.
[springboot, aop] 반복적인 작업은 이제 그만, AOP로 해결하기 특정 정보의 코드나 key를 통해 value값을 로드해야 할때, 매번 코드마다 똑같은 코드를 복사하는 것도 꽤나 힘든 작업이다. 스프링을 사용하면 AOP를 이용해 한번에 해결이 가능하다. ​ 실제로 최근 WMS 관련 프로젝트를 했는데, 상품바코드 조회하는 곳이 많았다. 이 바코드가 유효한지 여부를 수시로 검토해줘야 했었다. 그래서 메인로직으로 들어가기 전에 해당 바코드가 유효한지, 유효하지 않다면 비슷한 유형의 바코드가 있는건 아닌지 점검하는 로직을 넣어주었다. 덕분에 서비스마다 호출해야 했던 것을 어노테이션만 붙여서 해결 가능했다. ​ 이번 예제는 barcode를 통해 상품정보를 자동으로 조회하도록 했다. ​ AOP를 사용하지 않는다면 매 서비스마다 유효성을 체크하는 메서드를 호출하는 방식으로 개발할 .. 2020. 6. 17.
[pandas] 특정 key를 기준으로 groupby 한 후 해당목록 배열(dict)로 변경하기 Grid 형식의 데이터에 Key를 지정하여 관련 값을 배열로 넣고 싶을떄 쓰면 된다. 여기서는 예로 주소를 썼다. 가령 서울시에 포함되는 구들을 배열로 만들고 싶은 경우다 아래 원본데이터와 변경하고 싶은 데이터를 보면 이해될 거 같다. 이번 포스팅을 수행하기 위해 샘플 파일을 여기 첨부해두겠다. CSV 내 데이터 형태 바꾸고 싶은 문자형 { '광주광역시':['광산구', '남구', '동구', '북구', '서구'] ,'대구광역시':['남구', '달서구', '달성군', '동구', '북구', '서구', '수성구', '중구'] ,'대전광역시':['대덕구', '동구', '서구', '유성구', '중구'] ... } 그럼 pandas 를 켜서 다음을 수행한다. sample = pd.read_csv('address-sa.. 2020. 5. 30.
[frontend] SSR, 서버사이드 랜더링(next.js, getInitialProps) 프론트앤드 개발자라면 SSR(Server Side Rendering)에 대해 많이 들어봤을 것이다. SSR이란 말 그대로 서버에서 화면에 표현될 것을 처리하는 것을 의미한다. 그런데 그 처리한다는게 대체 멀 말하는 걸까? # Frontend Server 초반에 개인적으로 가장 햇갈렸던 것이 프론트엔드에 서버가 있다는 것을 자주 까먹는다는 거였다. 예를들면 세션관리라든가, 서버사이드에서 렌더링을 한다는게 무슨의미인가 하는 것들이 바로 그것이었다. 그림으로 보면 알 수 있듯 Frontend 서버를 둘 경우 서버는 2종류가 있는 샘이다. 아마 개발을 오래한 사람들이 서버라고 말할때는 대부분 Backend 서버를 떠올릴 것이다. 로그인을 처리하고 데이터베이스와 연결되어 있고, 리소스를 요청하면 맞는 리소스를 반.. 2020. 5. 6.
[springboot] request 시 reject당하는 error log 확인 방법 Spring 로 개발하다보면 컨트롤러에 Request를 보내면서 파라미터가 제대로 파싱되는지, 파라미터가 누락되면 어떻게 되는지 확인해야 한다. 그런데 아무런 설정을 해놓지 않고 테스트를 하면 어떤이유로 컨트롤러가 호출되고 거절되는지, API가 제대로 호출되었는지 알 수 없을때가 있다. 가령 다음과 같은 예다 @RestController public class TestController { @GetMapping("/test/get") public String testGet(@RequestParam(value = "text") String text) { System.out.println("/test/get text = " + text); return "testGet"; } } /test/get API를 생.. 2020. 4. 28.
반응형