Swagger 활용 API Document 자동 생성

Intro 프론트엔드와 백엔드의 업무가 점점 더 구분되어가고, MSA가 보편화되고 있는 지금의 추세에서 RESTAPI의 쓰임이 점점 더 많아지고 있습니다. 외부에 공개하는 API 뿐만 아니라 소프트웨어 내부적으로만 사용하는 API라고 해도 어플리케이션이 점점 커질수록 개발자의 기억력에만 의존하기에는 그 규모가 점점 버거워지기 마련입니다. 특히나 API를 공개하거나 개발자간의 협력에서 필요한 상황이 오면 체계화된 읽기 좋은 API Document의 작성은 선택이 아닌 필수입니다. 마침 회사에서 진행중인 프로젝트에도 조금의 여유가 생겨 API Document 정리를 해야할 때가 왔습니다. 여러가지 오픈소스 선택지가 있습니다만 이번에는 Swagger를 선택해서 테스트를 진행 해 보았으며 꽤나 만족스러웠습니다...

Development/DevOps 2022.02.23
인코딩 깨진 한글 파일 이름 복구하기

Intro 파일들을 주고 받다보면, 사용하고 있는 운영체제와 상관 없이 한글 파일명이 알아볼 수 없게 깨져있는 경우가 종종 있습니다. 특히 인터넷에서 파일을 다운받았을 때 그런 일이 많은데.. 모두 아시는 것 처럼 인코딩 문제 입니다. 파일명이 중요하지 않다면 그냥 한번 열어보고 말면 되지만, 파일명이 중요해서 꼭 알아야 할 때는 굉장히 절망적입니다. 다행인 것은 단방향 암호화처럼 원본 데이터가 손상된게 아닌 단지 인코딩문제로 못 알아보는 것 이기 때문에 다시 디코딩을 해 주면 원래의 파일 명을 알아 낼 수 있습니다. 원인 왠만한 인코딩 문제는 이렇게 못 알아 볼 정도는 아닌데. euc-kr로 인코딩 되어 있는 경우에는 이런 상황이 됩니다. 요즘에는 흔하게 일어나지 않는데, 오래된 소프트웨어를 사용하다 ..

Development/DevOps 2022.01.06
Docker) 도커로 Tomcat 컨테이너 실행

Intro log4j 취약점 테스트 진행 중 로컬에서 테스트하기에는 부담이 있어서 도커를 이용해 가상환경에서 하고자 합니다. 간단하게 톰캣만 돌리면 되는데, 우분투 컨테이너를 생성해서 JDK 설치하고 jar파일을 바로 실행 해 돌리다가, 이제 war로된 프로젝트로 테스트를 하려니 외장 톰캣이 또 필요해져서 어차피 이렇게 하나씩 올리면서 할꺼, 그냥 톰캣 컨테이너 만들어진걸 쓰게 되었습니다. 제가 나중에 필요할때 쉽게 찾아 할 수 있게, 또한 혹시나 또 필요한분이 있으시면 도움이 되었으면 하는 마음에 글로 간단하게 정리 해 올려 둡니다. Tomcat 공식 Tomcat 이미지 https://hub.docker.com/_/tomcat 딱히 복잡할 건 없고 docker run tomcat:9.0 이면 간단하게 ..

Development/DevOps 2021.12.23
Puppeteer 활용 브라우저 테스트 자동화

https://developers.google.com/web/tools/puppeteer 소개 Headless 브라우저에 대한 이해가 필요 합니다. 해당 내용은 https://shanepark.tistory.com/290 에서 확인 하실 수 있습니다. Puppeteer Puppeteer는 Chrome 팀이 개발한 Node 라이브러리 입니다. Headless 혹은 온전한 크롬도 컨트롤 할 수 있는 고차원 API를 제공 하며, Panthom이나 NightmareJS 등 이전의 자동화 테스트 라이브러리들과 비슷하게 작동합니다. 특징 Broswer에서 여러분이 수동으로 하는 대부분의 일들을 Puppeteer를 통해 할 수 있습니다. 몇가지 사용 예제 페이지의 스크린샷 혹은 PDF 파일 생성 싱글 페이지 어플리케..

Development/DevOps 2021.11.30
Headless Chrome 브라우저 테스트

https://developers.google.com/web/updates/2017/04/headless-chrome Intro Headless Chrome은 Chrome 59 버전에서 추가되었습니다. Headless Chrome이 추가되기 이전에는 보통 PhantomJS 를 이용해서 Headless 웹 테스팅을 했다고 하는데요, Chrome이 Headless Chrome 기능을 업데이트 하자, PhantomJS는 개발 중단을 선언 했습니다. 아무래도 크롬이 직접 제공하다 보니 서드파티 소프트웨어를 사용할 필요가 줄어들 수 밖에 없습니다. @Before Chrome alias 설정 Chrome 명령어를 쉽게 사용하기 위해 alias를 선언 해 줍니다. 저는 MacOS나 Linux에서 모두 zsh를 사용하..

Development/DevOps 2021.11.30