728x90

전체 글 191

이직하기 전 회고와 너무 만족스러운 이직 후기

9월 12일을 마지막으로 개발자로 2번째 직장생활을 마무리하게 되었다. 지난 첫 번째 회사에서는 기울어가는 회사의 상황이나 여러 부분들에 아쉬움을 느꼈다면, 이번에는 직무 자체에 대해 아쉬움을 느끼면서 이직을 하게 되었다. 아이러니하게도 기존 이력과는 달리 나는 자주 이직하는걸 원치는 않는다. 다만 애착을 가지고 하나의 유의미한 프로젝트를 해내고, 유지보수할 수 있다면 좋겠는데 그 부분에 대한 해소가 잘 안된 것 같다. 엘지멤버십앱을 운영하고 유지보수하면서 초반에는 이 서비스를 우리 회사 서비스라고 생각하고 재미있게 일했던 것 같다. 시키지도 않았는데 pm들이 운영업무를 감당하면서 회사 내부적으로 사용할 어드민 백오피스를 구축했고 덕분에 여러 업무들을 자동화하면서 리소스소모를 많이 줄일 수 있었다...

개발/생각 2025.09.11

이직 전전 회고

개발자로 내딛은 첫 회사에서 여러가지 잡다하게 일한게 엊그제 같은데, 마지막으로 회고를 쓴게 벌써 전전 직장이 되었다. 팀장으로 일하다가 대표님의 여러 알 수 없는 결정이 있었다. 갑작스런 근무 형태의 변경, 스케쥴의 변경 등 답답하기만 했고 뭔가 한 방향을 바라보고 같이 달려나가는 느낌보다는 나를 짜르려는 느낌만 받을 뿐이였다. 사실 팀장이 되고 나서 프로젝트를 새로 진행하게 되었을 때 이미 어느정도는 직감하고 있었다. 헬스케어 플랫폼을 지향하는 회사에서 느닷없이 성공경험이 있다는 기획자를 섭외하더니 데이팅앱을 개발하게 되었고 이마저도 이유는 돈이 벌린다는 이유여서다. 성공경험이 있다는 기획자는 개발자와 소통해본 경험은 전부해보였고 결론적으로 나는 기획과 개발 모두 핸들링하게 된 상황에 놓였다. ..

개발/생각 2025.09.11

[node.js] 위도, 경도 입력시 대한민국 시군구를 반환하는 라이브러리

https://github.com/sh5080/korea-sigungu-geocoding GitHub - sh5080/korea-sigungu-geocoding: api를 호출하지 않고 대한민국 시군구 지리정보를 처리하는 라이api를 호출하지 않고 대한민국 시군구 지리정보를 처리하는 라이브러리입니다. . Contribute to sh5080/korea-sigungu-geocoding development by creating an account on GitHub.github.com 계기 일반적으로 지리 데이터는 너무 방대하기 때문에 클라이언트가 들고 있기엔 너무 무거워서 정확한 데이터를 출력하기 위해서는 계산해주는 별도의 서버가 존재하고, api를 호출해야 한다. 네이버 api의 경우 월에 1000건 이..

[aws] 탄력적 ip 없이 ssh 접근시 명령어 고정하기

발단토이프로젝트를 진행하면서 aws 예산 임계치를 벗어나는 값을 확인하게 되었다. $0.00 per In-use public IPv4 address per hour for EC2 Free Tier153.497 HrsUSD 0.00$0.00 per In-use public IPv4 address per hour for EC2 Free Tier151.514 HrsUSD 0.00$0.005 per Idle public IPv4 address per hour0.075 HrsUSD 0.00$0.005 per In-use public IPv4 address per hour552.658 HrsUSD 2.76 per In-use public IPv4 address per hour 라는 동일한 항목에서 EC2 Free ..

[python] 강제 타입힌트 변경 함수 구현

계기  강타입언어에 익숙해있다보니 파이썬을 하면서 보이는 any는 상당히 불편했다. 타입힌트를 사용하지만 간혹 라이브러리에서 unknown, any로 확인되는 것들을 놓치다보면 여전히 any는 자주 등장했다. any도 그렇지만 문제는 라이브러리의 잘못된 타입힌트가 간혹 있는데, 이 타입힌트를 바꿔주지 않으면 오류로 잡히니 답답했다.   단적인 예시로, Tensor를 Image로 잡혀 있어 image.size로 구현하다가 에러가 있어 디버깅해보니 애초에 image타입이 아니였던 것이다.... 그런데 라이브러리에서 리턴하는 타입이다보니 변경을 하려면 방법이 필요해서 함수를 구현하게 되었다.   1. 타입체킹vsc 자체적으로 파이썬의 타입체킹을 설정해주었다. cmd , 통해서 설정을 열고 type check ..

개발/language 2025.02.28

[nginx] 특정 요청에 대한 nginx 500

발단 이미지 업로드하는 api에 대해서만 전부 nginx 500에러가 발생하고 있었다. 해결 과정 먼저 nginx의 에러 내용을 확인해준다. 맥(홈브류)의 경우 다음과 같이 입력한다. cd /opt/homebrew/var/log/nginx/tail -f error.log 에러가 다음과 같이 확인되었다. client, server, request를 파악해서 현재 발생한 오류를 찾는다. 나는 하나의 서버만 개발하고 있는 상태라 request, 시간만 확인하면 바로 확인할 수 있었다. "/opt/homebrew/var/run/nginx/client_body_temp/0000000005" failed (13: Permission denied), client: 127.0.0.1, server: www.tandan..

[swagger] Uncaught ReferenceError: SwaggerUIBundle is not defined at window.onload

문제스웨거를 설치하고 세팅한 뒤 localhost 에서는 정상적으로 스웨거가 확인되나, 배포한 서버에서는 정상적으로 스웨거가 확인되지 않고 SwaggerUIBundle is not defined 오류가 확인되었다.  해결 방법 SwaggerModule.setup('api/docs', app, document, { swaggerOptions: { persistAuthorization: true, }, customSiteTitle: 'API Docs', customfavIcon: '/favicon.ico', customJs: [ 'https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/4.15.5/swagger-ui-bundle...

개발/프로젝트 2024.10.29

[prisma] 서비스 레이어를 거치지 않고 aop개념으로 로직 구현하기

계기개인프로젝트를 진행하면서 이메일 암/복호화를 구현하던 중, 문득 무언가 불편함을 느꼈다. 결국 이메일을 암호화해서 저장하게 되면, 이메일을 조회할 때 이메일을 암호화해서 조회, 그리고 조회한 뒤에 클라이언트에게 보여질 땐 복호화되어야 하기 때문에 이메일을 클라이언트에게 보여주기 위해서는 동일 로직을 여러번 거쳐야 했다.  인증 / 인가를 별도로 매번 구현하는 것이 아니라 UseGuards나 UseInterceptors 데코레이터를 통해 관심사를 분리하는 것처럼 db에 접근할 때 항상 prisma를 통해 접근하기 때문에 prisma 에서 email 필드에 대해 암/복호화 과정을 거치는 부분을 세팅한다면 암/복호화를 놓치는 휴먼이슈나 가독성 등 여러 측면에서 괜찮을 것 같다는 생각이 들었다.   과정처음..

개발/프로젝트 2024.10.09

10주차 xss 2 쿠키 탈취

웹개발하는 입장에서는 쿠키가 탈취되지 않도록 httponly를 통해 클라이언트에서 접근할 수 없도록 하거나, Https 로만 허용하도록 secure설정을 하곤 했다.    내가 웹해킹을 배우는 이유는 여기에 있다. 어떻게 공격이 들어오는지를 모르니까 대비한다고는 하지만 어정쩡한 것 같아서 어떻게 공격을 하는지 제대로 알고싶어서였다. 그리고 이번 주차에서 시원하게 배워가고 있다.  쿠키를 어떻게 탈취할 수 있을까?지난 주차에서 xss 탈취 방법으로 stored, reflected xss를 배웠다. 여러 xss의 아이디어들 중, 먼저 강의에 나온 대로 stored 방식을 이용해서 html 스크립트에 자바스크립트 코드를 이용해서 의도된 url에 접근하도록 하고, 이를 통해 쿠키를 탈취하는 방법을 진행해보려 한..

9주차 xss 파헤치기

어느새 9주차에 접어들었고, 그간 포스팅은 못했지만... ㅠㅠ 그래도 열심히 수업은 듣고 있다. sql 인젝션에 대해 여러 방면으로 배웠지만 아무래도 원인과 방법에 대해 습득한 이후에는 본업이 우선이라는 생각이 들었다. 애초에 공격이 들어오는 부분을 막기 위한게 내가 배우는 이유이기 때문에..! 기존에 알고 있던 Prepared statement로 대응하는 것 외에 order by 등 대응이 어려운 부분들을 배울 수 있었고, 사실 이 부분은 현대의 orm은 이미 내장되어있다. 결론적으로는 입력값에 화이트리스트 필터링을 주어야겠다. 공격 차단도 그렇지만, 입력값에 불순한 의도가 들어오는 것 자체를 막아내야겠다는 생각을 하고 있다.     아무튼 다음 배우는 공격 방법은 XSS다. XSS는 cross sit..

728x90