목록분류 전체보기 (51)
altair의 프로젝트 일기
어제부로 마지막 최종 발표가 끝났다. 프로젝트 퀄리티에 비해 발표가 잘된 것 같아 다행이다. 많은 것들을 얻은 시간인 만큼 후기 글을 써보려 한다.합격하기까지서류와 코테많은 기업들도 그렇지만 어느 정도 이상을 채우면 서류를 비교적 쉽게 통과시키는 경향이 있는 듯 하다. 어차피 코테는 별다른 노력 없이 시행할 수 있고 그 이후에 서류를 검토해도 늦지 않기 때문이다. 심지어 소마 서류는 자기소개서가 큰 부분을 차지하니 화려한 이력보단 자기소개서에 집중하고 코테를 준비하는게 나을 듯 하다. 아무래도 기업의 채용 코테보단 허들이 낮다는 생각이 들었다. 경쟁률이 높다고는 해도 지원자의 대부분이 현역 대학생들이기 때문에 취준생들보다는 코테 실력이 떨어지는게 사실이다. 문제 자체는 크게 다르지 않지만 어차피 지원자들..
개요요 며칠 영상 편집 용 워크스테이션을 알아보고 있었다. 원래 쓰던 데스크탑이 자꾸 자기 혼자 꺼지곤 하기 때문이다. 친구들끼리 게임하거나 게임하는 영상을 녹화하는 정도로는 크게 문제 없지만 작업을 하자니 생각보다 불안한게 사실이다. 프리미어나 유니티에서 작업하다가 갑자기 꺼지면 답도 없지 않은가.그래서 중고 워크스테이션을 찾아보고 있었다. 그렇게 중고 장터를 돌아다니던 중, 눈에 띄는 물건을 몇 개 발견했다. 그 중에 하나가 바로 이 씽크패드 X200이다.2008년 경 한국 시장에 출시된 이 모델은 Intel Core 2 Duo를 달고 있었다. 내가 본 중고 매물은 이 코어2듀오 CPU에 2GB 램을 달고 5만원 밖에 하지 않았다! 물론 업자가 모아놓은 고물 노트북 중 하나여서 그런 것 같긴 했다. ..
개요 요새 오랜만에 아주 각 잡고 백엔드 개발을 하고 있다는 생각이 든다. 여러 사람들과 협업도 하고 코드리뷰도 하면서 개발자다운 생활을 하는 기분을 만끽하고 있다. 이번 글에서는 소규모 팀이 협업하는 과정에서 사용할만한, 즉 우리 팀이 쓰고 있는 Git branch 전략에 대해 소개하고자 한다. Git branch 전략 세상에는 정말 많은 Git branch 전략들이 있다. 대표적으로 Git flow와 Github flow를 들 수 있겠다. Github Flow는 Git Flow보다 더 적은 브랜치를 관리한다는 특징이 있다. Github Flow는 과거 버전으로 쉽게 돌아가는 등의 안정성을 일부 희생하는 대신 더 낮은 복잡도를 제공한다. 우리는 이 둘과 조금 다른 전략을 사용 중이다. 이를 짧..
개요 평소에 Self-hosting에 관심이 많다보니 비교적 가격이 싼 중고 컴퓨터나 미니PC를 자주 찾아다니는 편이다. 하지만 지난 해 메모리 반도체 가격이 폭락했을 때를 제외하면 눈에 띄는 싼 가격을 찾기 어려운 것이 현실이다. 인텔 N100 CPU는 어림도 없고 아톰, 셀러론 라인업도 생각보다 높은 가격으로 판매한다. 솔직히 서버용 미니PC에 10만원 이상을 지불하고 싶지 않다. 라즈베리파이에 대한 경험 때문이지 않을까. 그러던 중 알리익스프레스에서 이런 제품을 발견했다. 비록 저전력 듀얼코어로 CPU파워가 약하긴 하지만 생각보다 큰 램과 SSD 용량을 갖고도 10만원 정도의 가격을 보여준다. 무엇보다 눈에 띄는 점은 랜선 구멍이 4개나 되고 랜 칩셋이 인텔 i225V 또는 i226V라는 것이다..
개요 요새 소프트웨어 마에스트로에서 프로젝트를 하느라 정신이 없다. 백엔드와 기타 잡무(...)를 맡아 불태우는 중이다. 저저번 주에 예비군을 갔다와서 몸살에 걸려 저번 주를 통째로 날렸지만 말이다... 시간도 없는데 이게 무슨 날벼락인지 모르겠다. 어쨌든 프로젝트 개발 과정에서 발생한 나름 큰 난관의 해결책을 한국어 웹에서 잘 찾아볼 수 없어서 여기에라도 남기려한다. 문제가 발생한 배경은 다음과 같다. 지금까지는 퍼블릭 서브넷에 있는 EC2의 퍼블릭 IP를 통해 스프링 서버에 API 요청을 보냈다. 하지만 아무리 개발 서버라고 해도 퍼블릭 서브넷에 스프링 서버를 두는 것은 좋지 않다. 게다가 오토스케일링이나 로드밸런서도 포함되어 있지 않았다. 그래서 다음과 같이 바꾸었다. 이런 식으로 구성하면 애..
개요 파이썬으로 나무위키를 크롤링하다가 문제가 발생했다. 서버에서 크롤러가 돌아가는 컨테이너의 메모리 사용량이다. alpine 리눅스를 사용했음에도 불구하고 512메가바이트를 가볍게 채우고 1기가바이트로 바꾸어도 결국 모두 채운다. 크롤러는 대상 서버를 배려하기위해 시간 간격을 두고 요청을 보낸다. 그럼에도 불구하고 메모리에 계속 데이터가 쌓이는 모습이다. 결국 크롤러는 굉장히 느려졌다. 원인 사용 중이었던 크롤러 클래스의 __init__ 코드를 작성하면 다음과 같다. class Crawler: def __init__(self, base_url): self.visited = set() self.queue = Queue() self.base_url = base_url 방문했던 url을 visited라는 s..