본문 바로가기

개발17

[Spring] JSON 기반으로 테스트하기 (테스트 코드의 객체 초기화 부분 줄이기) 개요 최근에 회사 신규 프로젝트의 BE 팀에서 테스트 코드를 작성하기 시작했다. 그래서 코드 리뷰할 때 나도 리뷰어로 넣어줄 수 있냐고 부탁드렸고, 허락해주셔서 코드를 구경하고 있다. 코드를 처음 봤을 때 아쉬웠던 점은 자바라는 언어가 장황한 편이라고는 하지만 객체를 초기화 하는데 너무 많은 코드가 사용되었고 (한 서비스 클래스를 테스트하는데 라인이 1000 줄이 넘어갔다. 줄이 길다고 꼭 나쁜건 아니겠지만 불필요한 부분이 많아보였다.), 이로 인해서 본질인 테스트의 가독성이 떨어진게 아닌가 라는 생각이 들었다. 어디서부터 봐야할지 다소 막막하였다. 일단 그래서 그 부분을 개선할 수 있는 방법이 없을까 싶어 찾아보던중에 아래의 글을 발견하였다. # 테스트 코드 작성에 대한 나름의 고찰 이 글을 작성하신 .. 2023. 9. 14.
[Playwright] 인증정보 접근하기 (cookie, local storage, session storage) 이 글은 인증정보를 접근하고 보관하는 방법에 대해 다룹니다. (cookie, local storage, session storage) 일반적으로 로그인을 하였을 때 cookie나 local storage나 session storage를 통해 클라이언트의 브라우저에 인증정보(혹은 세션에 해당하는 키 값)를 보관합니다. 이러한 특성을 이용하여 테스트시에 인증정보를 보관하고 있다가 다시 로드하게 된다면, 각각의 테스트에서 인증할 필요가 없어지기 때문에 테스트 실행 속도를 단축시킬 수 있습니다. 이 글은 파이썬 playwright를 기반으로 작성되었으나. 기본적으로 node.js와 크게 다르지 않기 때문에 참고해주시면 감사하겠습니다. 방법 1 : 수동으로 값 가져오기 page 객체를 중심으로 각각의 저장소에 접.. 2023. 9. 11.
FreeRadius 로컬 인증서 갱신 및 인증서 파일별 역할 (crt, csr, key, p12, pem) 우리 회사에서는 무선 네트워크 인증을 위해 FreeRadius 로 radius 서버를 구축해서 사용중에 있다. 지난 금요일에 휴가였는데 생각도 못하고 있다가 마침 처음으로 인증서 만료가 발생되었다. 비교적 최근에 구축한지라 처음 겪는 일이였다. mac쪽은 크게 영향이 없었는데 windows 쪽은 영향을 많이 받으신 것 같았다. (인증서 무시하도록 하는 설정을 찾아서 설정하는걸로 임시 방편으로 해결하신것 같다.) 그래서 월요일날 회사에 서버 인증서를 교체를 진행하였는데 진행하는 중에 생각보다 인증서 파일이 이것저것 많았다. 일단 재생성 과정과 함께 생성되는 각 파일의 의미에 대해서 알아두면 좋겠다 싶어서 정리해둔다. freeradius 로컬 인증서 재생성 절차 회사에서는 freeradius 구축을 위해 f.. 2023. 9. 5.
[vite] PWA(프로그레시브 웹 앱, Progressive Web App) 만들어보기 (with vitepwa) 이 글에서는 vite 기반 react 프로젝트에 vitepwa를 적용하는 방법에 대해 설명하려고 한다. 이미 vite 기반 react 프로젝트가 구성되어 있다는 가정하에 진행한다. react를 사용한 이유는 회사에서 react를 사용하다보니 최근에는 프로젝트 할 때 최대한 react로 하려고 하는 편이다. (개인적으로는 vue를 더 선호한다.) 개요 pwa는 프로그레시브 웹 앱 (Progressive Web App) 의 약자이다. 자세한 이야기는 MDN의 프로그레시브 웹 앱 소개에서 확인해보면 좋을 것 같다. 요약하면 일반 웹 앱의 진화된 형태라고 생각하면 될 것 같다. 웹 앱을 설치 가능한 형태로 만들어 준다. vitepwa 적용하기 vitepwa는 vite 기반 프로젝트에서 pwa를 쉽게 설정할 수 .. 2023. 8. 27.
[pnpm] firebase hosting과 github action 연결하기 이 포스트는 pnpm 기반의 프로젝트에서 firebase hosting과 github action 연결하는 법에 대해서 설명한다. 기본적으로 firebase hosting 에서는 github action과 연결을 제공한다. GitHub pull 요청을 통해 실시간 및 미리보기 채널에 배포 이 방법을 통해 생성을 하게 되면 github workflow 파일이 생성된다. (firebase-hosting-merge.yml, firebase-hosting-pull-request.yml) 내용은 다음과 같다. (jobs 부분만 보면 된다. 두 파일 다 원리는 동일하기 때문에 firebase-hosting-merge.yml 을 기준으로 설명한다.) # This file was auto-generated by the.. 2023. 8. 26.
내 블로그/홈페이지 에 github(gist) 코드 삽입(embed) 시키기 (+ 확장 프로그램 소개) 개요 블로그를 작성하다 보면 코드를 삽입해야 할 때가 있다. 그럴 때 gist 나 github 에서 코드를 작성하고 그 코드를 embed로 삽입할 수 있으면 좋겠다 라는 생각이 들어서 방법들을 찾아보고 사용해본 결과 불편한 점이 있었다. 그래서 그 삽입 방법과 개선을 위해 만든 확장프로그램을 소개한다. 삽입 방법 gist 기본적으로 embed 기능을 제공하기는 한다. 우측 상단에서 embed 를 카피해서 내가 원하는 곳에 넣어주면 된다. 다만 문제는 하나의 gist 안에 여러개의 파일이 있을 경우 발생된다. 예시로 아래와 같은 코드를 만들어 보았다. https://gist.github.com/dev-jonghoonpark/e56f32c1795497a6a796005095159024 이 gist 에서 기본 .. 2023. 8. 8.