전체 글
-
DNS 타임아웃, WebClient 연결 끊김, HTTP 리다이렉트공부/트러블슈팅 2026. 1. 9. 16:02
코인 서버를 개발하면서 저번 주 내내 나를 괴롭혔던 네트워크 이슈 3가지를 정리한다. 일주일 전 해결했던 내용이라 가물가물하지만, 더 까먹기 전에 기록해둔다.1. GitHub Actions 배포 실패와 DuckDNS의 배신증상 GitHub Actions를 통해 GCP로 자동 배포(CI/CD)를 구축했는데, appleboy/scp-action 단계에서 자꾸 에러가 터졌다.Plaintext dial tcp: lookup *** on 168.63.129.16:53: i/o timeout간헐적으로 되다 안 되다 하더니 나중엔 계속 실패. 로그를 보면 DNS Lookup 과정에서 타임아웃이 나는 것 같았다.삽질의 과정 (범인 찾기) 처음엔 내 로컬 컴퓨터에서도 nslookup이 실패했다..nslookup minh..
-
파워쉘에서 안전하게 rm공부/Windows 2025. 9. 25. 21:11
리눅스에서 rm 을 하면 파일이 삭제되고 복구하기 어렵다..나는 안쓰는 파일을 자주 삭제하는 성격인데,, 삭제하고 다시 복구하고 싶을 때가 있다.그래서 나는 보통 trash-cli 를 깔아서 쓰곤 했다.. trash-cli 모르면 찾아보시길 그럼 윈도우에서는??윈도우에서는 UI 로 클릭해서 삭제하면 휴지통으로 보내지고, 복구하기도 쉽지만, 파워쉘에서 삭제하면??휴지통으로 안가고 리눅스처럼 삭제가 된다.. 그래서 파워쉘에서 함수를 만들어서 trash 명령어를 쓸 수 있게 해보자..파워쉘 7.5.2 버전을 사용했다. echo $PROFILE 명령어를 사용하면프로필 스크립트의 경로를 알 수 있다.리눅스의 .bashrc 같은 파일 인듯! 모르면 찾아보시길!이 파일을 수정하자notepad $PROFILE메모장으로..
-
윈도우에서 파이썬, 노드 버전 관리(pyenv-win, nvm)공부/Windows 2025. 9. 24. 19:28
파이썬, 노드 버전관리는 정말 힘들다..여러 프로젝트에서 다른 버전을 사용할 때 환경변수 path 를 바꿔가며 사용하기는 귀찮은 법그래서 node 버전관리를 nvm 으로 편하게 하듯이 파이썬도 pyenv 가 있다! 리눅스에서는 pyenv 를 사용했었는데 검색해보니 윈도우에서는 pyenv-win 을 사용해야한다고 한다.https://github.com/pyenv-win/pyenv-win GitHub - pyenv-win/pyenv-win: pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch betpyenv for Windows. pyenv is a simple python version m..
-
어떤 Merge 를 사용할까?공부/Git 2025. 8. 13. 18:27
개발자라면 git은 필수 협업 뿐만 아니라 개인프로젝트에서도 소스코드를 관리할 때 git을 쓰지 않을 수 없다 나는 git flow 전략을 자주 쓴다. 로컬에서 브랜치를 파서 커밋하고 remote 로 push 한 후에 merge 할 때만 pull request 를 올려서 합친다. 그런데 내가 알기로,, master 브랜치에서 develop 브랜치를 만들고, develop 브랜치만 수정사항을 커밋 후, develop 브랜치를 master 브랜치에 합치면 Fast-forward merge 방식으로 합쳐진다고 알고있는데 맞는지 모르겠어서 찾아봤다 커밋 그래프를 보면 알 수 있다고 한다.그런데* ccf4574 (HEAD -> master, origin/master, origin/HEAD) Merge bran..
-
동시성 문제 해결공부/Spring 2025. 6. 18. 16:57
문제 상황 :웹사이트의 특정 탭(화면) 에 1명의 사용자만 접속 가능하도록 기능을 수정해야한다. 생각 :redis 혹은 외부 queue 활용, 메모리 활용을 생각했지만redis, queue 는 회사의 정책에 따라 쓸 수 없었고메모리 활용은 운영 서버에서 WAS 를 2개 띄우기 때문에 메모리로 제어할 수 없었다. 해결 :2개의 WAS 에서 동시에 접근 가능한 저장소인 DB 를 사용하였다.(조건부 UPDATE 로 해결) 회사의 코드 대신 쇼핑몰에서 샴푸를 사는 상황을 들어 설명하겠다. Spring 은 하나의 http 요청당 하나의 스레드만 사용한다.동시에 여러 요청이 들어오면 여러 스레드가 같은 값에 대해 수정할 수 있다.이 때 데이터의 정합성이 깨질 수 있다.https://minho-bot.tistory...
-
데이터의 정합성과 무결성공부/DB 2024. 11. 10. 16:58
정합성과 무결성. 언뜻 봐도 중요하다.둘 다 중요하지만 뭐가 다른지 gpt 에게 물어보자나 : 데이터의 정합성과 무결성에 대해 설명해줘GPT : 데이터의 정합성과 무결성은 데이터베이스와 시스템에서 매우 중요한 개념입니다. 두 개념 모두 데이터가 정확하고 신뢰할 수 있는 상태를 유지하도록 보장하는 데 중점을 둡니다.데이터 정합성 (Data Consistency)정합성은 데이터가 일관되고 서로 모순되지 않으며 정확하게 유지되는 상태를 말합니다. 주로 데이터의 중복이나 데이터의 모순을 방지하고자 할 때 사용하는 개념입니다. 예를 들어, 고객의 정보가 여러 테이블에 걸쳐 있을 때 모든 테이블에 동일한 정보가 일관되게 저장되어 있어야 정합성이 유지됩니다. 데이터 정합성을 유지하기 위한 방법에는 데이터베이스의 트랜..
-
Facade 패턴과 Factory 패턴공부/Spring 2024. 11. 10. 15:38
코드를 짜다보면 클래스가 많아진다.클래스가 많아지면서 코드가 복잡해지고 중복되는 부분도 자주 생길 수 있다.이런 경우에 쓸 수 있는 디자인 패턴 2가지를 알아보자.Controller, Service, Repository 를 사용하는 Spring mvc 를 기준으로 설명하겠다. Facade 패턴과 Factory 패턴 모두 Controller 와 Service 사이에 컴포넌트가 추가된다.각 패턴의 예시를 보여주고 장점? 의의? 를 내가 느끼는 대로 추가로 설명하겠다.Facade 패턴한 컨트롤러에서 여러 서비스를 호출하면서 호출하는 클래스가 많아져 코드가 복잡해질 때 사용할 수 있다. 예를 들어 물건을 사려면1. MemberService 에서 사용자를 검색한 후2. ItemServie 에서 아이템 id 로 아..
-
Jmeter 로 테스트를 해보자공부/Spring 2024. 10. 31. 00:35
Jmeter 란?GPT :JMeter는 Apache Software Foundation에서 개발한 오픈 소스 성능 테스트 도구입니다. 웹 애플리케이션, API, 데이터베이스, FTP 서버 등 다양한 서비스의 성능과 부하 테스트를 수행할 수 있습니다. 주로 HTTP/HTTPS 요청을 통해 웹 애플리케이션의 응답 속도, 처리량, 안정성 등을 측정하는 데 사용되지만, 다른 여러 프로토콜을 지원하여 다양한 네트워크 환경에서 테스트할 수 있습니다.JMeter의 주요 특징은 다음과 같습니다:1. 부하 테스트: 많은 사용자들이 동시에 접근할 때 시스템이 어떻게 반응하는지 테스트합니다. 이는 시스템의 최대 수용 능력을 파악하고 성능 한계를 확인하는 데 유용합니다.2. 성능 테스트: 애플리케이션의 처리 속도와 안정성을 ..