본문으로 바로가기

파일의 IT 블로그

프로그래밍

해당되는 글 137
  • thumbnail
    프로그래밍/Python

    [Python] 멀티 쓰레딩 vs 멀티 프로세싱 비교

    https://www.youtube.com/watch?v=AZnGRKFUU0c 파이썬에는 GIL(Global Interpreter Lock) 이란게 걸려있어서 여러 쓰레드를 동시에 실행시켜도 결론적으론 한번에 하나의 쓰레드 밖에 실행하지 못합니다. 이런 반쪽짜리 멀티 쓰레딩 덕분에 파이썬이 실제로 욕을 많이먹었죠. 멀티 쓰레딩과 멀티 프로세싱을 비교하는 좋은 영상이 있어서 첨부해봅니다. 실제로 제가 이전에 구현하고 현재도 배포중인 네이버 웹툰 다운로더의 경우에도 파이썬의 멀티 프로세싱 모듈을 이용해 제작했습니다. 사실 개념도 잘 모르고 인터넷에 추천되있는걸 받아와서 사용한거긴 한데 뭐 결론적으론 올바른 선택이 아니였나 싶습니다.
  • thumbnail
    프로그래밍/VSCode

    VSCode Vim 익스텐션에서 Ctrl+C / Ctrl + V / Ctrl + X / Ctrl + H (복붙, 자르기, 치환) 활성화 하기

    VSCode 확장에 있는 이 Vim 이라는것만 깔면 VSCode를 Vim 에디터처럼 사용할 수 있습니다.. 그러나 한가지 문제점은 Vim에서 복붙키나 (Ctrl C Ctrl V) 자르기 (Ctrl + X), Find & Replace (Ctrl + H) 등이 제대로 동작하지 않습니다. 왜냐면 VIM에서 이미 이 키들을 선점해서 바인딩중이기에 VSCode 기본 키들이 동작하지 않는것입니다. 사실 복붙 안되는건 Vim에서 y키나 p로 흉내내면서 따라할 수 있어도 에디터 모드에서 자르기가 안되는건 진짜 불편하더라구요. 사실 Vim에서 저 키들을 이미 선점중이라 무슨 유용한 기능을 제공할까 싶은데 기존에 기능에 비하면 거의 사용하지 않는 수준의 기능들입니다. 아래 코드를 VSCode 설정 파일 (settings..
  • thumbnail
    프로그래밍/Talk

    [C++] 다항식 클래스 100% 구현 완성!

    단일 연결 리스트 구조를 이용해서 무려 "다항식" 을 저장할 수 있는 Class를 구현했습니다! 과제라서 어쩔 수 없이 꾸역 꾸역 하긴 했는데 온갖 버그와 싸운 끝에 일단 구현 완성하긴 했네요. (사실 만들고 나니 왜 만든건지 잘 모르겠습니다. 울프람 알파 쓰면 안되나?) C/C++ 로 프로그래밍 하면서 느낀건데 얘내들은 뭔가 완성해도 "와 됐다!" 가 아니라 "어 됐네? 근데 왜 됐지?" 라는 말이 먼저 나옵니다 ㅋㅋ 특히 메모리 참조 오류를 너무 많이 쳐맞았더니 거의 사용한적 없는 Visual Studio 의 디버깅 툴이 참 고마워지더라구요. Rust 좋아하는 분들이 C/C++ 도 Rust가 대체할 것이다 이렇게 강하게 말하는 경우가 있습니다. 좀 비약이 강한 말이긴 하지만 솔직히 C는 몰라도 C++..
  • thumbnail
    프로그래밍/Talk

    [C++] 다항식 클래스 구현 50%

    과제로 연결리스트를 구현에서 다항식을 저장해주는 클래스를 만들고 있는데 요새 방구석에 앉아서 컴퓨터로 코딩만 했더니 진짜 헛구역질이 나오네요;; C나 C++이나 진짜 짜증나는게 한 두가지가 아닙니다.. C는 문자열 없어서 동적할당으로 똥꼬쇼 해야하고 C++은 객체 정의에 만들어야 할 게 도대체 몇개인지.. 옛날엔 분명 저 Visual Studio 폰트나 글자가 나름 마음에 들었던 거 같은데 이제는 VSCode 기본 폰트에 비해 깨랑깨랑(?) 해서 잘 보이지도 않네요 온갖 예민함과 짜증, 피로가 몰려옵니다 도대체 제가 뭐하는건지도 요새는 잘 모르겠습니다 솔직히 프로그래밍 하는건 즐거운데 몸이 못따라가는 기분입니다. 그도 그럴것이 하루에 7~8시간씩 컴퓨터만 만지고 있었으니깐... 좀 쉬었다 와야겠습니다. ..
  • thumbnail
    프로그래밍/C

    [C] 문자열 배열 동적 할당 & 버블 정렬 구현

    C에서는 일반적으로 문자열을 char * 이나 char []로 구현하며, 문자열 배열은 앞 문자열 구현의 배열형인 char*[] 이나 char[][] 로 구현합니다. 즉 C에서 여러 문자열을 배열 형태로 저장하고 싶으면 (char*)[] 의 포인터 배열 형태나 char[][] 의 2차원 배열로 구현을 해야합니다. char strings[4][20] = { {"Hello"},{"I am"}, {"File"}, {"nice to meet you"} }; 1. 문자열 배열을 2차원 배열로 저장하면 다음과 같이 파란색 공간에 메모리 공간이 낭비되는 문제가 발생합니다. 또한 동적으로 문자열 크기를 할당할 수 없는 문제를 가지고 있습니다. char * strings[4] = {"Hello", "I am", "Fil..
  • thumbnail
    프로그래밍/VSCode

    VSCode로 다른 IDE 부럽지 않은 프로그래밍 언어 만능 컴파일 환경을 만들어보자! (C, C++, Python, Java, Javascript)

    VSCode는 제가 요새 애용하고 있는 프로그래밍 도구 중에 하나입니다. 아마 대부분의 프로그래밍 경험에서 이 프로그램의 도움을 받고 있는 거 같네요. 물론 VSCode는 근본적으로 텍스트 에디터기 때문에 IDE 처럼 어떤 한 언어에 특화된 기능이나 컴파일러를 기본적으로 제공하진 않습니다. 그러나 폭 넓은 플러그인 생태계로 익스텐션만 설치해주면 IDE 부럽지 않은, 아니 그 이상의 기능을 지원할 수 있게 해줄 수 있습니다. 또 컴파일러야 그냥 따로 설치해주면 그만이죠. 모든 기능이 무겁게 들어가 있지 않고 사용자가 원하는 플러그인, 컴파일러만 골라서 설치함으로써 가벼움까지 챙긴, 거의 완소 IDE에 버금가는 프로그램이 되겠습니다. 물론 프로젝트 만들고 실행 버튼만 눌러주면 거의 끝나는 IDE랑 다르게 개..
  • thumbnail
    프로그래밍/C

    [C] 문자열을 다룰 땐 항상 깊은 복사와 얕은 복사를 고려합시다..

    요새 UNIX 시스템 프로그래밍을 배우면서 C언어로 system call() 을 호출해서 리눅스 tree 명령어 출력을 C언어에서 그대로 구현하는 과제를 진행중입니다. 코딩병이 도져서 오후 11시쯤부터 도전해서 오전 6시까지 프로그래밍 하는 기행을 보였으나.. 완성이 머지 않았는데 재귀적으로 tree() 를 호출하면서 출력을 진행 하면서 중간에 자꾸 메모리가 소멸하는 문제가 발생하였습니다. 디버깅.. 디버깅을 해야하는데..! 리눅스를 VMware 가상 환경으로 돌리고 있어서 훌륭한 디버거 기능을 가진 Visual Studio는 윈도우 전용이라 사실상 사용할 수 없었고, VSCode 에서 gdb를 이용해서 하나 하나 디버깅을 해야 하는 골때리는 상황이 생겼습니다. 사실 저는 주 관심사가 C#이나 Pytho..
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

    이모티콘을 클릭하면 댓글창에 입력됩니다.