프로그래밍/기타 3

docker mysql DB와 django 연동

django로 간단한 서비스를 만들던 중, 로컬 mysql db가 여러군데 사용이 되고 있어서, docker로 db를 띄워 연동해보고자 한다. docker-compose를 사용했고, 아래와 같이 docker-compose.yml에는 기본설정만 하여 db를 생성했다. version: "3.7" # 파일 규격 버전 services: # 이 항목 밑에 실행하려는 컨테이너 들을 정의 ( 컴포즈에서 컨테이너 : 서비스 ) mysql_todo: # 서비스 명 platform: linux/x86_64 image: mysql:5.7 # 사용할 이미지 restart: always container_name: mysql_todo # 컨테이너 이름 설정 ports: - "3308:3306" # 접근 포트 설정 (컨테이너 ..

C언어 포인터와 call by reference

먼저 C에서 포인터를 도대체 왜 쓰는 것일까? 다른 언어에서는 포인터가 없는데, 유독 C언의 포인터가 C언어를 처음 배우는 사람에게 진입장벽이 되는 것 같다.(사실 다른언어에는 포인터가 없을 뿐이지, 그와 같은 역할을 하는 다른 요소들이 있다.) 아래 예시를 한번 봐보자. void local(int); int main(void) { int var = 10; printf("변수 var의 초깃값은 %d입니다.\n", var); local(var); //loca에서 매개변수로 받는 var은 지역변수로서, main의 var과 메모리상에 같은곳을 바라보는 변수가 아니다. printf("local() 함수 호출 후 변수 var의 값은 %d입니다.\n", var); return 0; } void local(int v..

파이썬의 함수, 클래스, 인스턴스

함수란 프로그램의 중복을 막기 위한 모듈이고 이 모듈의 호출을 통해 간편하게 짜놓은 로직에 각기 다른 input값을 넣고, 프로그램을 반복적으로 실행시킬 수 있다. a=1 b=2 result = a+b 위와 같은 덧셈 프로그램이 아닌, 아래의 함수를 통해 def add(a,b): result = a+b return result input값을 자유롭게 바꿔가며 재사용할 수 있는 reusable한 덧셈 프로그램을 짜는 것이다. 반복을 피하는게 프로그래밍의 목적 아닌가. 그렇다면 클래스는 왜 사용을 할까? C언어에는 클래스가 없다는데... 그리고 실상은 클래스 없이들 코딩들 많이 하던데... 라는 의문을 가지기 쉽다. 물론, 클래스가 없어도 된다. 심지어 함수가 없어도 된다. if, while, for 문만 ..