Developer(45)
-
Ubuntu: 갑자기 git repository clone이 안될 때(통신 에러, feat.DNS)
현재 Azure를 사용하고 있고, VM에 우분투를 설치하여 한창 서버 설정을 해보고 세팅이 완료된 이후 다른 작업을 하느라 못들어 갔었다. 오랜만에 들어가보니 뭔가 에러 투성이였다. 외부와 통신을 해야되는 모듈들이 에러를 뿜어내기 시작했고 단순한 코드에러로 치부했던 나는 미련하게도 현재 작업한 내용까지 코드 푸시해놨으니 clone 다시 받아서 세팅해야겠다고 생각을 했었다. 하지만 git clone 명령어를 치자마자 아래와 같은 메세지가 뜨기 시작한다. git clone https://www.블라블라.kr/서버어어.git Cloning into '서버어어'... fatal: unable to access '서버어어': Could not resolve host: www.블라블라.kr 맨처음에 의심했던 것은 ..
2022.09.24 -
Node.js: PM2 사용 시 Cronjob 설정
node.js(with typescript)로 구현한 크롤러의 정기적인 동작 구현을 위해 여러 방안을 생각했다. 1. OS (우분투)에서 지원하는 Crontab을 이용하여 시작점인 index.js 정기적인 실행 2. PM2 이용, 실행 3. 스케쥴링 라이브러리인 노드 스케쥴러를 활용한 실행 첫번째는 이전에 해본 내용이기도 하고 Node 기반으로 진행할 시 2, 3번이 더 좋을 것 같아서 두개 자료를 보면서 파악을 해보았다. 현재 코드 구조 상 해당 크롤링 서버가 동작이 계속 되고 있는 상황에서 트리거로서 크론잡을 이용해도 되고, 아니라면 서버를 띄워놓지 않은 상황에서 시작점을 호출하여 서버 동작하고 종료하게 할 수 있는 두가지 갈림길에 서있었다. PM2에서 크론잡을 세팅하는 방법은 크게 두가지가 있다. ..
2022.09.24 -
Java Spring: from String to HashMap with toUpperCase()
요즘 한창하고 있는 DB 마이그레이션 작업 중 일부를 발췌했다. 타 DB로 이관을 위해 작업을 하는데 컬럼 타입이 달라 1차적으로 단순하게 Json Field에 저장되어 있는 Key, Value 형태의 내용을 String 형태로 빼내왔고 이를 JackSon에서 제공하는 Object Mapper를 이용하여 HashMap형태로 저장하였다. IDE의 도움을 받았으나 readValue() 메소드는 try, catch 블록으로 감싸져야 된다고 나와 기본적인 제공내용으로 Wrapping을 진행해놓았다. (어짜피 String값이 기존 DB에서 무조건 넘어오게 되어 있어 소스는 완벽하게 제공되기에 exception을 빡빡하게 걸 필요가 없다고 판단했다) private HashMap convertStringToMap(S..
2022.09.11 -
Django: ORM 쿼리셋 정렬 순서가 아무렇게나 나온다구요...? (feat. DB별 기본 정렬)
이번주 막바지 프로젝트를 향해 달리시던 튜티분께서 질문을 하셨다. "로컬 환경에서 Table.objects.all()을 통한 쿼리셋 도출 시 PK 순으로 잘 나와서 그대로 배포했는데 배포환경에서는 데이터가 정렬기준 없는 듯이 뒤죽박죽 나와요. 원인을 못찾겠습니다." 코드를 보여달라 말씀드렸고, 보니 특별히 ordering 관련된 내용이 없어서 해당내용을 코드로서 추가(order_by) 해준다면 기대한대로 모든 환경에서 작동할 것이라 가이드를 드렸으나 이 부분에 대해 정확한 원인을 파악해보고 싶어 문서를 뒤지기 시작해보았다. 우선 장고 공식 문서 내 ordering 관련된 내용이다. (Django - Model Meta options - ordering) 하단 단락을 보면 순서가 명확히 정의되지 않았다면 ..
2022.08.07 -
[Dummy API] Mock API를 만들어서 테스트해보는 가장 간단한 방법(mocki.io)
Dummy API 앞서 진행하던 Golang 프로젝트는 외부 API로 request를 보낸 후 response를 받아 처리를 해야되는 역할이 존재했다. 즉, 외부 API 호출에 따른 response body 내용을 확인해야 했으나 현재 실제로 구축이 되지 않아 대략적인 구조만 연동정의서를 통해서 수령 받게 되었다. 연동정의서에 있던 Response Body를 확인하였다. (아래는 가짜로 만든 내용쓰) { "status": 200, "data": { "detail": [ { "model": "model~", "pk": 1, "fields": { "create_date": "2022-02-22T11:54:34.118", "update_date": "2022-02-22T11:54:34.118", "status..
2022.06.19 -
WIL_220603
Golang으로요..? 코프링 프로젝트와 연계된 서버를 추가로 개발해야하는데 데몬 형태로 배포가 진행이 되어야한다고 들었다. 내가 다소 익숙한 파이썬으로 개발하여 만들 수도 있을 것 같았으나 파이썬으로 진행하는 것에 대해 구글링을 해보니 스크립트 언어의 한계성이나 관련 패키지의 잦은 에러 리포트들을 보고 고민이 들었기에 과감하게 Golang으로 만들어보는 것으로 결정했다. Golang언어 설치는 생각보다 간단했다. 공식 홈페이지에서 다운받아 설치하면 끝이였다. 이후 간단하게 공식문서를 보며 go 이하 폴더 구조에 대해 파악을 하였고, 제공되는 튜토리얼을 통해 매우매우 간단한 웹서버를 하나 만들어보았다. 대략적인 느낌만 가지고 서버 구조를 구축하려고 했는데 레퍼런스를 본적이 없으니 좀 막막했다. 패턴을 어..
2022.06.03