분류 전체보기 416

[인턴] 하계 인턴 계약 만료. 다시 학교로 돌아가다.

두 달간의 인턴 기간이 오늘부로 끝났다. 오늘까지 두 달간의 기간 동안 많은 일들을 해보았다. 처음에 자바 안드로이드 라이브러리 개발로 지원했는데 면접 당시 옆에 계신 분께서 파이썬과 장고를 활용한 백엔드 개발 포지션을 추천해주셔서 응하게 된 것이 계기였다. 솔직히 말해서 오히려 좋았다. 원했던 포지션이 아니었음에도 뭐가 되었든 백엔드 개발을 할 수 있다는 점이 마음에 들었다. 이곳에서 일하면서 가장 좋았던 점은 만났던 사람들이라는 생각이 든다. 밥도 같이 먹고 오후 근무 시작전까지 많이 떠들었다. 물론 당연히 기술적으로도 많은 걸 배우고 경험할 수 있었다. 실수를 해서 다행이라는 생각이 들었다. 그 부분에서 문제가 나타나지 않았더라면 언젠가 더 큰 장애로 이어졌을 수도 있었겠다는 생각이 들었고 동시에 ..

개발 활동 2022.08.26

[Django] Django 에서 테스트 코드 부분 실행하기

만약 테스트 코드를 일부 실행하고 싶다면 아래와 같이 진행하면 된다. app 명 + 테스트 코드 디렉토리명 + 테스트 코드 .py파일명 + 테스트 코드 클래스 + 테스트 클래스 메서드 명 순으로 적어주면 된다. # Run the specified module python3 manage.py test catalog.tests # Run the specified module python3 manage.py test catalog.tests.test_models # Run the specified class python3 manage.py test catalog.tests.test_models.YourTestClass # Run the specified method python3 manage.py test c..

Python3/Django 2022.08.18

[Django] CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

Django 를 production 상에서 운용할때는 반드시 DEBUG = False 로 두고 실행해야 한다. 그 이유는 DEBUG = True 로 두고 운용을 하게 되면 서버 운용 중 발생한 오류가 사용자에게 보이기 때문이다. 이 때문에 해커가 프로젝트의 구조를 파악할 수도 있게 된다. 그래서 반드시 DEBUG=False 로 두고 운용해야 하는데 막상 DEBUG = False 로 두고 runserver 를 돌리니 다음과 같은 에러가 발생했다. CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False. 어떻게 해결할 수 있을까? 해결법은 간단하다. 에러 로그가 하는 말 그대로 진행하면 된다 . settings.py 에 있는 ALLOWED_H..

Python3/Django 2022.08.18

[Django] drf-yasg가 적용되지 않을때 + ImportError: cannot import name 'url' from 'django.conf.urls' + frozen importlib

Django 를 사용해서 api 개발을 하던 중 api 스펙을 자동으로 생성해주는 drf-yasg 를 사용하려고 했다. 그런데 계속 frozen importlib 에러가 지속적으로 발생했고 django.conf.urls 에서 url 을 import 할 수 없다는 에러가 발생했다. 근데 당시에는 너무 바쁘고 일이 많아서 api 자동 생성을 후순위로 밀어두고 기능 개발을 빠르게 진행했었다. 그러다가 다시 api 를 살펴볼 일이 생겼는데 아예 오늘 drf-yasg 오류를 잡고 api generation을 끝내자고 생각해서 문제를 해결하게 되었다. 우선 ImportError: cannot import name 'url' from 'django.conf.urls' 는 버전 이슈다. 스택오버플로우를 참고한 결과 아..

Python3/Django 2022.08.18

[Github] private repository 에 push하기 + ssh-keygen

private repository 에서 작업하면서 인증키를 등록해놓은 상태여서 push 하는데 문제가 없었다. 다만 문제는 근 몇주간 클라우드 세팅때문에 코드 작업을 거의 진행하지 못했는데 갑작스레 인증키가 invalid 하다는 에러가 떠서 push 가 되지 않았다. 우선 아래와 같은 명령어를 입력해주자. $ ssh-keygen 이후 passphare 등을 묻지만 그냥 엔터로 입력하고 지나가도 무방하다. 그리고 나서 키가 생성되는 위치와 함께 키 생성이 완료됬음을 알 수 있다. 그리고 cat 명령어를 통해 id_rsa.pub 키를 알아낸다. 자 이제 이 pub 키를 github 에 가서 등록해줘야지만 private repository 에 push 를 할 수 있다. 그리고 이후 아래와 같은 과정을 거쳐서 ..

[인턴] 처음으로 실수를 하다.

인턴기간이 금방 흘러간다는 생각이 들었다. 실제로 2주밖에 남지 않았다. 깔끔하게 마무리를 하고 싶었지만 오늘 꽤나 치명적인 실수를 하고 말았다. 방송국에서 회사로 취재를 오기로 한 상황인데 이 순간 한창 서버 작업을 하고 있던 와중이라 취재를 온 사실을 모르고 도메인 설정을 건드렸다. 건드린 이유는 오늘까지 해결하라는 이슈가 있어서 그 작업을 끝마치기 위해서였다. 이것 때문에 도메인과 서버 상에 있는 nginx 의 설정파일까지 수정하고 있던 와중이라 서버가 간헐적으로 접속되다가 접속되지 않기를 반복했다. 테스트를 진행하면서 되는 것 까지 확인하고 기존 서버를 삭제하려던 참이었다. 취재를 하면서 제품을 시연하고 서버와 연결할 필요가 있다는 말을 전해듣지 못한게 이유였다. 단순한 인터뷰를 진행하는 줄로 알..

개발 활동 2022.08.11

[인턴] 스타트업 인턴을 시작하고 한달이 지났다. 잘 지내고 있습니다.

서울에 있는 모 스타트업에서 하계인턴을 시작한지 벌써 한달이 되었다. 꽤나 바빴던 한달이었다. 앞으로도 한달이나 더 남았지만 한달이 지난 시점에서 한번 되돌아보는 시간을 가져보려고 했다. 처음 제안을 받았을때는 내가 애초에 지원했던 라이브러리 개발이 아니라 파이썬과 장고를 활용한 백엔드 포지션으로 들어와서 너무 좋았다. 사실 Django를 사용해본적이 없어서 내심 백엔드 개발 포지션을 탐내고 있었지만 먼저 포지션 변경 제안을 해주셔서 나는 좋았다. 하지만 기쁨도 잠시 Django를 이틀만에 빠르게 학습해야했고 NCP와 Nginx 그리고 도커 사용법을 익혀야했다. Django의 경우 파이썬을 오랫동안 사용해왔었고 SpringBoot를 활용해서 두세번 프로젝트를 진행했던 경험이 있었기 때문에 개념을 몰라서 ..

개발 활동 2022.08.02

10월 4일 페이스북 대규모 장애 원인 간단 정리

2020년 10월 4일 페이스북은 물론이고 인스타그램, 왓츠앱 모두가 한꺼번에 접속되지 않는 문제가 발생했다고 한다. 장애 원인은 간단하게 정리할 수 있었다. 페이스북의 라우트가 라우터에서 즉 쉽게 말해 네트워크 상에서 없어졌기 때문이다. 즉 페이스북으로 무언가를 보내는 길 자체가 사라졌기 때문에 전 세계 어느 곳에서도 페이스북을 이용할 수 없게 된 것이다. 기업이 커지게 되면 하나의 작은 망을 구축해서 쓰게 되는데 페이스북도 마찬가지로 모든 서버들이 하나의 단일 지점을 기준으로 외부와 소통하고 있던 상태였다. 그런데 이 연결지점인 라우터가 자신이 facebook이라는 것을 외부로 알려주는 것을 중단했기 때문에 발생한 문제이다. 내부 개발자가 실수로 설정 정보에 라우터의 정보를 삭제하는 설정까지 넣은 상..

개발 팁 2022.07.29

[NCP] Naver cloud platform 기초 학습 내용 정리 (입문)

NCP VPC 정의 VPC(Virtual Private Cloud)는 퍼블릭 클라우드 환경에서 사용할 수 있는 고객 전용 사설 네트워크임. 다른 네트워크와 논리적으로 분리되어 있어 IT 인프라를 안전하게 구축하고 간편하게 관리할 수 있음. 기존의 데이터 센터 네트워크와 유사하게 구현가능 기능 다른 네트워크의 간섭없이 완전히 분리된 네트워크 사용가능 VPC내부에 서브넷 생성 가능 Access Control을 통해 네트워크 접근을 제어하여 강력한 보안을 제공함. (ACG는 서버 단계의 접근을 제어하고 Network ACL은 서브넷 단계의 접근을 제어함) Cloud Connect와 Managed IPsec VPN을 통해 외부 네트워크와 안전하게 통신 가능 VPC내부에서 통신이 가능함. VPC Peering을 ..

클라우드/NCP 2022.07.21
반응형