post by
B코딩

위 사진은 @980819_님 커미션입니다.
헤더는 @RaGGun_CO님 커미션입니다.

코딩을 하는 B입니다.

사용 언어 : Python, C++
배우고 있는/배우고 싶은 언어 : JAVA, R, HTML, CSS, Javascrip
▶ GitHub 주소 : https://github.com/G0LDF0X

아직 주니어 개발자도 되지 못했지만... 잘 부탁드립니다.

post by
B코딩
부트캠프에서 배웠던 내용을 복습하며 헷갈렸던 부분들을 정리하여 기입해놓는다.  DefaultRouter()from django.urls import include, pathfrom rest_framework.routers import DefaultRouterfrom .views import ProductViewSetrouter = DefaultRouter()router.register(r'products', ProductViewSet)urlpatterns = [ path('', include(router.urls)),] DefaultRouter()란 Django REST Framework에서 제공하는 라우터 클래스다.이 라우터는 API 엔드포인트를 자동으로 생성하고 관리할 수 있게 해준다. regi..
2/15 오늘 강의는 전반적으로 Python의 문법에 관한 얘기였다. 파이썬의 자료형, 기초적인 함수 등은 자주 사용해온 언어이기에 익숙해서 1.5배속으로 금방금방 넘겼다. 이런 게 있었다고? 하는 것만 몇 개 적어보겠다. - removeprefix() : '점수:90'과 같이 대다수의 문자열 앞에 동일한 불필요한 부분이 있다면 해당 부분을 제거할 때 사용된다. - removesuffix() : '90점'과 같이 대다수의 문자열 뒤에 동일한 불필요한 부분이 있다면 해당 부분을 제거할 때 사용된다. 기본적으로 나는 replace를 많이 써왔어서 이런 함수가 있다는 걸 처음 알았다. 보통 replace("점수:","")를 쓰거나 replace("점", "")같은 걸 써왔기에... 하지만 replace는 가운..
작년 하반기 취업의 실패로, 좀 더 준비를 하고자 Python 백엔드 부트캠프에 신청하게 되었다. 역시 백엔드 하면 JAVA지만, Python 쪽에 좀 더 특화가 되어 있어서 Python 백엔드에 눈길이 가는 건 어쩔 수 없나보다. 다음 주 월요일부터 부트캠프가 시작하는데, 부트캠프 시작 5일 전부터 Python 온보딩 강의를 들을 수 있길래 신청했다. 오늘부터 강의 요약본과 간단한 사족을 붙일 예정이다. 사족은 요약에 방해가 되지 않도록 연한 글씨로 표기한다. [ JAVA와 Python의 차이 ] 소스코드(.java) → JAVA 컴파일러 → 바이트 코드(.class) → JVM : 빌드, 컴파일의 과정 필요 Python 코드(.py) -> Python 인터프리터 -> 실행 결과 : 빌드, 컴파일의 과..
post by
B코딩
Chapter 8. 예외처리(Exception Handling) 1. 예외처리(exception handling) 1.1 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생 시점에 따라 컴파일 에러(compile-time error)와 런타임 에러(runtime error)로 나눌 수 있으며, 이 외에도 논리적 에러(logical error)가 존재한다. ▼ 에러의 종류 컴파일 에러(compile-tme error) : 컴파일 시에 발생하는 에러 런타임 에러(runtime error) : 실행 시에 발생하는 에러 논리적 에러(logical error) : 실행은 되지만, 의도..
Chapter 7. 객체지향 프로그래밍 II 1. 상속 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 자바에서 상속을 구현하기 위해서는 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써 주기만 하면 된다. ▼ 상속받는 방법 class Parent { } class Child extends Parents { // ... } 조상 클래스 : 부모(parent) 클래스, 상위(super) 클래스, 기반(base) 클래스 자손 클래스 : 자식(child) 클래스, 하위(sub) 클래스, 파생된(derived) 클래스 자손 클래스는 조상 클래스의 모든 멤버를 상속받기 때문에, Child 클래스는 Parent 클래스의 멤버들을 포함..
Chapter 6. 객체지향 프로그래밍 I 1. 객체지향언어 [ 객체지향언어의 주요 특징 ] 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드의 관리가 용이하다. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 증복을 제거하여 코드의 불일치로 인한 오작동을 방지할 수 있다. 객체지향개념을 학습할 때 1) 재사용성과 2) 유지보수, 3) 중복된 코드의 제거라는 세 가지 관점에서 보면 보다 쉽게 이해할 수 있다. 2. 클래스와 객체 클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다. 클래스의 용도 : 클래스는..
Chapter 4. 조건문과 반복문 1. 조건문 - if, switch 제어문(control statement) : 프로그램의 흐름(flow)을 바꾸는 역할을 하는 문장들. 조건문과 반복문이 있음. ▼ if 구문의 구조 if (조건식) { // 조건식이 참(true)일 때 수행될 문장들을 적는다. } if 구문에 사용되는 조건식은 일반적으로 비교 연산자와 논리 연산자로 구성된다. 자바에서 조건식의 결과는 반드시 true 또는 false가 되어야 한다. 괄호 { }를 사용해서 작성하는 블럭(block)의 끝에는 ;를 붙이지 않는다. 블럭{ } 안의 문장들은 탭(tab)으로 들여쓰기(indentation)를 해줘야 한다. 문장이 한 줄 이라면 블럭{ }은 생략 가능하다. ▼ if-else 구문의 구조 if ..
post by
B코딩
1. 단락 평가(Short -circuit Evaluation): 자바스크립트에서 &&나 ||와 같은 논리 연산자를 처리할 때, 첫 번째의 값으로 이미 True나 False를 확정할 수 있다면 그 이후의 값에는 접근하지 않는다.단락평가는 truthy하고 falsy한 값에도 적용된다.ex) &&에서 앞이 false면 더 보지 않음, ||에서 앞이 true면 더 보지 않음 truthy || truthy의 경우 앞쪽의 truthy한 값을,truthy && truthy일 경우, 뒤쪽의 truthy 값을 반환한다.
1. Let과 Var의 차이: Var의 경우, 동일한 이름으로 변수를 다시 선언할 수 있지만 let과 const는 같은 변수명으로 다시 객체의 재선언이 불가능하다. (let은 값을 바꾸는 재할당은 가능하다.)  2. 형변환: JS에서는 자동으로 형변환이 이루어지는 경우가 있다. 곱하기 연산(*)의 경우, 숫자형과 문자형을 곱했을 때 문자형을 숫자형으로 변환 가능하다면 자동으로 형변환이 진행되며, 더하기 연산(+)의 경우, 문자형의 더하기 연산으로 간주되어 숫자형을 문자형으로 자동 형변환한다.그 외에도 의도적으로 형변환을 지정할 경우에는 parseInt(), parseFloat() 등을 사용한다. (parse의 경우 문자열 내에서 숫자만 찾아내 변환한다.)  3. 연산자자바스크립트에서는 ==와 ===의 동..
Chapter 5. 클로저 5.1 클로저의 의미 및 원리 이해 클로저(Closure)는 여러 함수형 프로그래밍 언어에서 등장하는 보편적인 특성이다. 자바스크립트 고유의 개념이 아니기 때문에 ECMAScript 명세서에서도 클로저의 정의를 다루지 않고 있기 때문에 다양한 서적에서 클로저를 한 문장으로 요약해서 설명하면 아래와 같다. 자신을 내포하는 함수의 컨텍스트에 접근할 수 있는 함수 ─ 더글라스 크록포드, 《자바스크립트 핵심 가이드》, 한빛미디어(p68) 함수가 특정 스코프에 접근할 수 있도록 의도적으로 그 스코프에서 정의하는 것 ─ 에단 브라운, 《러닝 자바스크립트》, 한빛미디어(p196) 함수를 선언할 때 만들어지는 유효범위가 사라진 후에도 호출할 수 있는 함수 ─ 존 레식, 《자바스크립트 닌자 비..
Chapter 4. 콜백 함수 4.1 콜백함수란? 콜백 함수(callback funciton)는 다른 코드의 인자로 넘겨주는 함수다. 콜백 함수를 넘겨받은 코드는 이 콜백 함수를 필요에 따라 적절한 시점에 실행한다. 즉, 어떤 함수 X를 호출하면서 '특정 조건일 때 Y를 실행해서 나에게 알려달라'는 요청을 보내는 것이다. 콜백 함수는 제어권과 관련이 깊다. 콜백 함수는 다른 코드(함수 또는 메서드)에게 인자로 넘겨줌으로써 그 제어권도 함께 위임한 함수다. 콜백 함수를 위임받은 코드는 자체적인 내부 로직에 의해 이 콜백 함수를 적절한 시점에 실행한다. 4.2 제어권 4.2.1 호출 시점 var count = 0; var timer = setInterval(function () { console.log(co..
post by
B코딩
Ubuntu 환경에서 psql 명령어를 사용하려고 할때 제목과도 같은 오류가 발생했다. PostgreSQL이 설치가 안 된 것은 아니었고, 패키지 등록도 완료 했으며, netstat로 네트워크를 확인했을 때 해당 포트 번호를 쓰는 프로세스가 없는데도 해당 오류가 발생했었다. 구글에 검색해 보았을 때, 여러 가지 해결 방법이 있었지만 나에게 유효한 해결 방법은 따로 적어두는 게 좋을 것 같아 이곳에 기입해두고자 한다. ① 먼저 PostgreSQL 상태 확인하기 : 보통 컴퓨터를 껐다 켜면 PostgreSQL 서버가 다운되어 있는 경우가 많았다. 아래 명령어로 status를 확인한 후, down 되어 있다면 start해주도록 한다. # Windows의 cmd에서 ubuntu로 먼저 접속 # 안 되어있다면 W..
오늘 VSC에서 코딩을 하고 있는데 실행을 하니 출력 창에서 오류가 발생하여 해결 방법 몇 가지를 적어놓고자 한다. 1. 코드 앞부분에 import sys를 통해 IOWrapper사용 파일을 열 때 인코딩을 해주는 코드인 것 같다. 아래의 코드를 파일 최상단에 삽입하니 한글로 잘 출력되었다. import sys import io sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8') sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8') 2. VSC의 Extensions에서 Code runner를 검색한 다음 Extesion Settings에 들어가 Run in ..
간만에 코딩할 게 생겨서 반 년만에 AWS에서 제공받았던 EC2 사설 서버를 켰다. 그런데 갑자기 구글 크롬에서 서버 IP로 주피터 노트북이 접속이 안 되기 시작했다. 분명 netstat으로 찾아보면 파이썬이 0.0.0.0으로 되어 있어서 다시 주피터 노트북을 실행해봤는데... 아뿔싸, 이미 8888 포트가 실행중이라 8889로 열렸다. 일단 그래서 열려 있는 8888 포트를 kill 명령어를 이용해 PID를 특정하여 지웠고, 다시 jupyter notebook 명령어를 이용해 실행했다. 이번엔 localhost가 아니라 ip라고 떴으니 잘 될 거라고 생각했는데... ......어째서? 반 년동안 건드린 설정이 없는데, 업데이트 문제인가 싶어서 sudo apt-get update를 실행했는데도 jupyt..
트위터에서 같은 내용의 DM이나 트윗을 연달아 보낼 경우, 트위터 측에서 스팸으로 의심하고 차단하기 때문에 발생합니다. 저의 경우, DM과 관련된 API를 사용하다가 실수로 "나에게 온 DM에는 답변하지 않기" 기능을 넣는 것을 잊어 트위터가 "나에게 보내는 메시지"를 무한대로 보내게 되어 해당 오류가 발생했습니다.
post by
B코딩
최근 Python을 이용해 Discord Bot을 제작하는 일이 많아졌는데, 추후의 편의성을 위해 일련의 과정을 기록해놓고자 한다. 먼저 들어갈 것은 디스코드 개발자 페이지, 즉 DEVELOPER PORTAL이다. https://discord.com/developers/applications Discord Developer Portal — API Docs for Bots and Developers Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with. discord.com New Application 버튼을 눌러 봇의 이름을 결정하고, 이미지를..
프리 티어 기간이 끝나서, AWS 계정을 새로 만들어야 하는 상황이 왔다. 서버를 구축한 게 1년 전의 일이라 기억이 가물했는데, 어떻게든 과거의 흔적을 더듬어서 다음 번에 다시 서버 구축할 때는 편하게 하려고 여기에 적어두기로 했다. EC2 서버 구축은 아래의 링크를 참고했다. https://yoonhoohwang.tistory.com/8 [AWS] EC2 Instance 로 Ubuntu 환경 구축하기 안녕하세요. 오늘은 요즘 핫한 Amazon Web Service 의EC2 서비스를 사용해보겠습니다. EC2 란? 확장식 컴퓨팅을 제공하는 것인데, 필요한 만큼 가상의 서버의 하드웨어를 확장 및 축소를 할 수 있어비용 yoonhoohwang.tistory.com 해당 링크에서는 우분투가 18.04 버전이지..
나중에 참고용으로 확인하고자 링크를 남겨둡니다... https://dnight.tistory.com/entry/GitHubio-페이지-만들기
Google에서 스프레드시트 API를 gspread로 사용할 때면 자주 사용하는 기능들이 있는데, 여기에 몇 가지 적어보고자 합니. 물론 기능을 사용하기 위해서는 먼저 구글 API에서 키를 받고 연동하는 과정이 중요합니다. 이때, 개발자 계정은 해당 계정에 편집자 권한으로 들어가 있어야 합니다. 키 받아서 시트 불러오기 # API 키를 연동하는 과정 key_file = "키파일 경로.json" scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] creds = ServiceAccountCredentials.from_json_keyfile_name(key_file, scope) client = gsp..