Computer Programming/AI 75

Python의 parameter와 argument의 차이점은?

programming에서 자주 쓰이는 parameter(매개변수)와 argument(인자)의 차이점에 대해서 정리해 보았다. 비슷하지만 다른 parameter와 argument. 함수를 정의할 때 이름 옆의 괄호 안에 들어가는 variable들이 'parameter'이고, 함수를 사용할 때 passing(넘겨주는) 해 주는 variable들이 argument이다. # 여기서 a와 b는 Parameter def sum(a, b): return a + b # 여기서 2와 5는 Argument sum(2, 5)

TIL_환경 변수(PATH)란?

백과사전에서는 환경 변수(Environment Variable)란 '프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임'이라고 설명하고 있다. 환경 변수의 종류는 역할에 따라 여러 가지가 존재하는데, 그 중 PATH에 대해 알아보았다. 환경 변수 PATH를 지정한다는 것은 좀 더 쉬운 말로 설명하면 어떤 프로그램의 경로를 변수의 값에 저장해 놓고 현재 나의 위치와 상관 없이 어디에서든 그 프로그램을 실행시킬 수 있는 방법이다. 예를 들면, Python을 설치할 때를 생각해 보자. 위와 같이 'Add Python 3.7 to PATH'라는 체크란이 보인다. 저 체크란을 선택하게 되면 현재 나의 위치와 상관없이 전역에서 Python 3.7을 실행할 수 있게 된다. 즉, 환경 변수 PAT..

TIL_가상 환경(Virtual Environments)이란?

Python을 이용한 웹 프로그램을 만들 때 가장 먼저 설치하고 실행하는 것이 바로 가상환경(venv)이다. 가상 환경(Virtual Environments)이란? 가상 환경은 독립적인 python 실행 환경을 의미한다. Python을 포함한 대부분의 언어들은 package나 module의 버전을 계속 업데이트 한다. 한 환경에서 한 버전의 패키지만 설치가 가능하기 때문에 일반적으로 프로젝트 별로 버전을 관리해야 편리하다. 각각의 가상 환경은 다른 환경에 영향을 미치지 않고 각자 다른 종류와 버전의 패키지를 갖고 있어서 독립적인 버전 관리가 가능하다. 즉, 가상 환경은 프로젝트마다 다른 버전의 라이브러리를 사용하여 각각 독립적이게 관리할 수 있도록 해주는 역할을 한다. Virtual Environment..

TIL_Python의 장점과 단점

현재 Python의 Django framework를 이용해서 웹사이트를 만들고 있고, AI library를 가져와서 사용하고 있다. 이 외에도 데이터 분석, 인공지능 분야 등 사용범위가 넓은데, 이번에는 Python의 장점과 단점에 대한 정리를 해 보았다. Python의 장점 1. Script Language compile 과정 없이 interpreter가 코드를 한 줄씩 읽어서 바로 실행하는 script 언어이다. 이 때문에 코드를 편집하고 즉각적으로 결과를 확인할 수 있고, debugging 과정에서도 빠르게 오류를 찾아낼 수 있다. 2. Dynamic Typing 변수의 자료형을 선언하지 않아도 되서 코드 작성 시간을 단축시켜준다. 변수의 type은 코드가 실행되는 시점에 결정된다. 3. Platf..

TIL_OSI(Open System Interconnection) 7 Layers in Network

AWS에 website를 배포하는 과정에서 UDP/TCP 등의 용어가 등장하여 무엇인지 찾아보다가 Networking의 7 Layers model에 대해 이해하고 넘어가야 할 것 같아서 한 번 정리를 해 보았다. OSI(Open System Interconnection) 7 Layers란? OSI 7 Layers는 인터넷을 이용하여 한 컴퓨터에서 다른 컴퓨터로 데이터를 전송하는 과정을 7단계로 나눈 것 OSI 7 Layer Moel TCP/IP Protocol 7 Layer Application Layer Application telnet FTP DHCP TFTP HTTP SMTP DNS SNMP 6 Layer Presentation Layer 5 Layer Session Layer 4 Layer Tra..

TIL_WSGI(Web Server Gateway Interface)란?

Django project를 시작할 때, 'startproject'를 사용하여 프로젝트를 생성하고 나면 아래 그림처럼 'wsgi.py' 파일이 생성된 것을 볼 수 있다. 'wsgi.py'파일이 하는 역할은 무엇일까? WSGI(Web Server Gateway Interface)는 web application server이 web server(WS)와 통신하기 위한 interface이다. API와 비슷하게 web server와 web application server 사이에서 data를 주고 받기 위한 규약이다. client - Web Server(WS) - WSGI - Web Application Server(WAS)의 관계와 역할 client가 web browser을 통해 HTTP 방식으로 WS에 re..

TIL_Web Server와 Web Application Server의 차이는?

Web Server와 Web Application Server의 차이에 대해 정리해 보았다. Web Server(WS) Client의 요청에 따라 HTML 페이지, image, CSS 파일 등과 같은 정적인(static) 콘텐츠를 제공 일반적으로 HTTP protocol을 사용하여 client의 요청을 받고, 해당하는 파일을 찾아 client에게 전송 Apache, Nginx, Microsoft IIS와 같은 소프트웨어가 위의 역할을 수행 Web Application Server(WAS) 사용자와 상호작용하여 동적인(Dynamic) 콘텐츠를 생성하고 제공 주로 사용자가 웹 사이트와 상호작용할 때 사용 사용자의 입력을 받아 처리하고, 데이터베이스와 상호작용하여 정보를 검색하고 저장 Java EE, ASP...

TIL_About Linux

Linux open source operating system(OS) Linus Torvalds가 1991년에 개발한 OS, 서버용 OS로 많이 사용됨. Linux 안에는 Debian, Ubuntu, Redhat, CentOS 등 다양한 OS들이 존재함. Linux 중 사용자가 가장 많은 것이 Ubuntu GUI(Graphical User Interface) 환경의 Windows, Mac과는 다르게 CLI(Command Line Interface) 환경 다른 OS에 비해 비교적 안정적인 환경에서 운영할 수 있음. Linux의 CLI(Command Line Interface) 소개 ls (file 목록 보여줌) ls -l (file 목록을 자세하게 보여줌) ls -a (숨김 파일까지 보여줌) cp a.tx..

TIL_JavaScript, synchronous와 asynchronous

프로젝트의 frontend에서 vanilla JavaScript를 이용하여 회원가입(signup) 기능을 구현했다. frontend 단에서 user가 회원가입 정보를 입력하고 '가입하기' 버튼을 눌렀을 때, 기입한 회원 정보가 api를 통해 backend에 전달되고 database에 저장이 되는 과정이다. 보통 api에 요청을 보내고 response를 받는 과정은 시간이 걸릴 수 있기 때문에 해당 response를 받고 다음 코드가 진행 되도록 해줘야 한다. 이때 필요한 것이 async/await와 같은 비동기적인(asynchronous) 코드이다. // api.js const backend_base_url = "http://127.0.0.1:8000"; // 회원가입 async function hand..

TIL_Django, F expressions

팀 프로젝트 안에서, 게임의 힌트 버튼을 누르게 되면 누른 사람의 포인트가 약간 차감이 된다. 이 부분을 views.py에서 구현해 보았다. from django.db.models import F ... class HintView(APIView): permission_classes = [permissions.IsAuthenticated] def post(self,request,quiz_id): quiz = get_object_or_404(Quiz, pk=quiz_id) hint = quiz.hint user = request.user user.update(point=F("point")-constant.HINT_DEDUCTED_POINT) History.objects.create(user=user, act..

LIST