목록CodeStates/TIL (17)
체대출신 코더의 개발자 성장기
OOP란? OOP(객체지향프로그래밍) 은 캡슐화, 추상화, 상속성, 다형성 의 네가지 성질을 띄는 개발 방식이다. 하지만 나는 그동안 왜 굳이 객체지향 프로그래밍을 해야하는지의 필요성을 몰랐다. 하지만 오늘 대충 감이와서 삘이 꽂힌김에 기록을 남겨보려한다. OOP의 필요성은 어떤 물건을 설계하고 제작하는 과정에 빗대어 보면 이해가 쉽다고 생각한다. 컴퓨터를 예로 들어보자 컴퓨터는 많은 부품(CPU,GPU,RAM,SSD,Power)들이 조합되어야, 그 기능을 수행할 수 있다. 하지만 더 좋은 성능을 원한다면 우리에겐 두 가지의 선택지가 있다. 1. 새로운 컴퓨터를 산다. 2. 새로운 부품을 산다. 과연 두 방식 중 효율적인 방식은 무엇일까? 나는 개인적으로 2번 이 효율적이라고 생각한다. 이유는 새로 모든..
HTTP 를 이용한 통신은 두가지 특성이 있다. 1. 비연결성(Connectionless) 클라이언트가 HTTP 를 이용해 서버에게 요청을 보내면 서버는 응답을 주고 연결을 끊어버린다. 2. 무상태성(Stateless) 클라이언트의 상태가 존재하지 않음을 의미한다. 서버와 클라이언트가 주고받은 기록의 상태를 남기지 않는 것을 의미한다. 위 두가지 특성으로 인해 클라이언트와 서버의 독립적인 관계유지가 쉬워져 클라이언트는 여러서버로 요청을 보낼 수 있고 서버는 여러 클라이언트로 응답을 보내줄 수 있다. 하지만, 두가지 특성 모두 서버를 클라이언트의 요청없이는 바보가 되도록 만든다. 한번의 요청에 한번의 응답 만을 보낼 수 있으며 기록이 남지 않기 때문에 서버는 같은 클라이언트로부터 요청이 와도 같은 클라이언..

지금 도커에대해 한페이지 넘게 쓴게 날아가서 ... 그냥 간단하게 쓰고 자려고 한다. 임시 저장하는 습관을 가져야겠다.ㅜㅜ 1. 도커 한 컴퓨터에서 구축한 환경은 다른 컴퓨터에서도 사용할 수 있도록 도와주는 기술 2. 이미지 한 컴퓨터에서 서버를 만들때 구축한 환경을 글로써 저장해 놓는것. 이 글만 있으면 어디서든 이 글에 써져있는 환경을 구성하고 사용할 수 있다. 3. 컨테이너 이미지를 실행시켜 환경을 만들어 놓은 것. 환경별로 독립적인 공간을 만들어 놓기 때문에, 충돌의 걱정은 하지 않아도 된다. 4. vm과의 차이점 컨테이너라는 것이 기존 컴퓨터 안에서 다른 환경을 만든다는 측면에서 가상 컴퓨팅를 생각할 수도 있을텐데 자원을 효율적으로 쓴다는 측면에서 도커가 훨씬 우위를 점한다. 위의 그림을 참고하..

클라이언트와 node서버의 연결은 끝났고 이제 남은 과제는 node.js 와 장고서버, 장고서버와 db를 연결하여 클라이언트에 임의의 초성을 가져다 주는 것 이다! 1. csrf error 문제 새로운 명령어를 장고에 전달하여 '추가'한다고 생각했기 때문에 post 요청에 uid를 담아 보내주었다. 그러니 서버에서는 csrf token에 대한 에러를 보내면서 403이라는 메시지를 보내주었다. CSRF는 Cross-site request forgery의 약자로서 해커가 다른 사람의 권한을 도용해서, 웹사이트에 악성코드를 심는 공격을 일컫는데, 이를 방지하기 위해 csrf token을 보내는 방법을 이용한다고 한다. 따라서 나는 token이 없기 때문에 403을 보내주는 구나 라고 생각하고 node.js에서..
이전 글에서 내가 세운 전략은 다음과 같다. 1. 구글 어시스턴트를 켠다 2. 서버를 켠다 3. 구글어시스턴트와 서버를 잇는다. 4. gactions를 이용해 둘의 대화가 가능하도록 만든다. 1.구글 어시스턴트를 켠다 구글어시스턴트를 켜는 것은 4가지 과정중에서 굉장히 쉬운 일이다. https://developers.google.com/actions/ Actions on Google | Actions on Google | Google Developers Build Actions to help users get things done with the Google Assistant. developers.google.com 이 사이트에 들어가 상단바에 'go to actions console'을 클릭하면, 원하..
어제 레퍼런스로 받은 코드를 잇기위해 마구잡이로 뭔가를 다운로드 받고, 연결시키다보니 우선순위를 어떤것으로 둬야할지 엉켰던 것 같다. 내가 실행 시킨 것들과 팀원들의 의견을 종합해본 결과 해결된 것은 다음과 같았다. 1. servo의 기능? 서버를 실행시킬 때 나만 접근할 수있는 localhost의 주소가 아닌, 다른사람들도 모두 접근 할수 있도록 배포하는 기능을 해준다. https://serveo.net/#manual Serveo: expose local servers to the internet using SSH Alternatives ngrok Serveo is an excellent alternative to ngrok. Serveo was inspired by ngrok and attempts ..

장고를 다운로드 하려는데 pyenv라는 가상환경을 다운로드 받아야하는 이슈가 있어서 왜 굳이 가상환경을 설정해야하는지 의문이 들었다. 검색 결과 파이썬 버젼 관리에 대한 이슈 때문에 가상환경을 설정 해야한다고 하는데 더 자세히 들어가보자 1. 왜 가상환경이 필요하지? 하나의 프로젝트는 많은 파이썬으로 작성한 코드들의 파일이 모여서 실행된다. 만약, 모두 다른버전의 파이썬으로 작업하다 하나로 합치는 경우가 생긴다고 생각해보자. 어떤 일이 일어날까? 버전충돌이 일어나 난리가 날 확률이 매우 높아진다. 이러한 상황을 방지하기 위해 가상환경이 필요하다고 생각하면 될것같다. 예를 들어 장고 1.5로 작성중인 A와 장고 1.4로 코드를 작성중인 B 가 있다고 해보자 A와 B를 한 프로젝트로 합치려니 B의 버전이 너..
기업 측에서 프로젝트를 만들때 참고하라고 받은 파일에 __init__이라는 빈파일이 모든폴더마다 있길래 왜 있나 의문이 들어서 서칭해보았다. 다른 폴더에 있는 파일을 import하여 쓰고 싶을 때, '나 쟤랑 같은 프로젝트에서 쓰이는 애야' 라는 표시를 해주지 않으면, 불러와 쓸 수 없다고 한다. 또한 한폴더에서 작성한 파일들을 *를 이용해 모두 불러오고 싶을 때는 __all__이라는 변수를 설정해주고, import할 것들을 명시적으로 적어 주어야한다고 한다 __all__ = ['echo']