본문 바로가기

CS117

[파이썬 개발자 로드맵] Exceptions - Python 에서 예외(Exception)를 일으키고 처리하는 방법 , try ... except ... else 의 의미 파이썬 개발자 로드맵에 따라 문법들을 정리하고 있습니다. 2022.04.27 - [CS/Python] - python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 armin.tistory.com 오늘은 예외 처리에 대해 간단하게 정리하고 넘어가 보겠습니다. Handling exceptions 다른 언어들과 마찬가지로 파이썬 에서는 선택 된 예외들을 처리할 수 있습니다. 다음과 같이 t.. 2022. 7. 2.
python 함수 리턴 밑줄 변수 "_ " 의 의미 파이썬 코드를 보다보면 underscore(밑줄, _ ) 값 을 리턴하는 경우가 있다. 다음 코드의 예시를 보자 def demo_func( mul ): return 1*mul, 2*mul, 3*mul if __name__ == "__main__": a, b, c = demo_func(1) print ( a, b, c ) a1, b1, _ = demo_func(2) print ( a1, b1, _ ) a2, _, c2 = demo_func(3) print ( a2, _, c2 ) 이렇게 작성 된 코드의 출력은 어떻게 될까? 결과는 다음과 같다. % python3 return_.py 1 2 3 2 4 6 3 6 9 _ 에 할당 한 값을 print 함수는 정상적으로 출력 해 준다. 그런데 밑줄변수 _ 는 왜 .. 2022. 6. 16.
Python print 함수를 stdout, stderr 로 출력하는 방법 - python 개발자가 stderr를 써야하는 이유 python 에서는 print 함수를 정말로 많이 사용한다. 나는 표준출력을 목적으로 사용하기도 하지만 간단하게 Debugging 할 때에도 쓰는 것 같다. 대부분 개발자가 비슷하지 않을까 생각 해 본다. 그런데 실제 production 은 함부로 쓰기가 좀 조심 스러운게 사실이다. 조심스러운 표준 출력, stdout 일반적으로 python 에서 print 함수를 쓰면 stdout으로 출력이 된다. https://docs.python.org/ko/3/library/functions.html#print 내장 함수 — Python 3.10.5 문서 내장 함수 파이썬 인터프리터에는 항상 사용할 수 있는 많은 함수와 형이 내장되어 있습니다. 여기에서 알파벳 순으로 나열합니다. abs(x) 숫자의 절댓값을 돌려줍.. 2022. 6. 15.
[파이썬 개발자 로드맵] Type casting - python 변수 형변환 하는 방법 python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 armin.tistory.com 로드맵 따라서 내용을 좀 더 상세하게 가져가고 싶었는데 또다시 겉핥기를 하는 것 같다.. 어느정도 흐름만 스켈레톤을 만들어 두고 세부 내용들은 생각나는대로 업데이트를 하는게 좋을 것 같다. 첫 술에 배 부를 수는 없는 법이다. 내가 python 을 사용하면서 주로 사용하는 Casting은 다음과 같다. int to str str to int Bool to str list to set .. 2022. 6. 4.
docker 명령어를 이용한 사설 레지스트리(private registry)기반 개인서버에 이미지 저장소 만들기 도커 사설 레지스트리를 사용하면 도커 허브 역할을 하는 개인 저장소를 만들 수 있다. 이 레지스트리는 컨테이너로 구현되어 이에 해당하는 도커이미지가 존재하므로 docker run 명령어를 사용하여 만들 수 있다. $ docker run -d --name myregistry -p 5000:5000 --restart=always registry:2.6 Unable to find image 'registry:2.6' locally 2.6: Pulling from library/registry 486039affc0a: Pull complete ba51a3b098e6: Pull complete 470e22cd431a: Pull complete 1048a0cdabb0: Pull complete ca5aa9d0632.. 2022. 5. 18.
[파이썬 개발자 로드맵] Python 변수 와 데이터 타입에 대해 2022.04.27 - [CS/Python] - python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 armin.tistory.com 로드맵의 첫 시작. 변수에 대한 이해이다. 근데 진짜 언어라는게 깊게 파기 시작하면 한도끝도 없다. 내 개인적인 추천방식은 온라인에서 가볍게 한번 훑고나서 일단 개발이 가능한 수준 정도의 실력을 쌓은 뒤 디테일하게 정리 된 책을 구매해서 Deep d.. 2022. 5. 5.
Global Interpreter Lock (GIL) - 파이썬의 길(?) 이란? GIL 에 대해서는 Python 코딩의 기술 이라는 책에서 처음 접했던 것 같다. 상호배제잠금 이라는 단어로 설명을 했었는데, 최근 회사에서 대화를 하다가 기억이 제대로 안나서 정리 차원에서 포스팅을 해보려고 한다. GIL (Global Interpreter Lock) 해석을 하면... 전역... 통역가.. 락? 책에서 설명하는 GIL의 역할은 CPython이 선점형 멀티스레딩의 영향을 받지 않게 막아준다 이다. 선점형 멀티스레딩의 경우 한 스레드가 다른 스레드를 인터럽트해서 프로그램을 제어하게 되는데, 이 인터럽트가 예상과 다르게 일어나면 인터프리터 상태가 망가진다. 이러한 인터럽트를 Lock을 통해서 막아주는 것이 GIL이 되겠다. 그런데 이게 문제가 되기도 하는데 그것은 바로 스레드의 병렬성 저하 .. 2022. 5. 2.
python 개발자 로드맵 ( developer roadmap ) 에 따라서 개발공부하기 예전에 DevOps 업무를 수행하기 위해서 어떤 능력이 필요한지 roadmap.sh 에서 확인해 본 적이 있다. 파이썬을 현업에서 적극적으로 사용하고 있지만 가끔 기본적인 내용에 대해 엦어버릴 때가 있는 것 같아서 Python developer roadmap 을 한번 확인해 봤다. Developer Roadmaps Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, learn and improve. roadmap.sh Pyt.. 2022. 4. 27.
제조회사 개발자의 신세한탄 그리고 살아남기위한 발버둥 1 - 부서배치 여는 글 나는 제조회사에서 개발자 직무로 일을 하고 있다. 하고 있는 업무의 범위가 꽤나 넓은 편이어서 이 직무를 개발자라고 말하는 게 맞을지 가끔 의문이 들기는 하지만 그래도 나름 사내에서 많이 사용하는 SW를 만들고 있으니 개발자가 맞는 것 같다. 요즘 들어 회사에 답답한 일들이 상당히 많은데 부서 내 문제라기보다는 대부분 HR 문제이다. 근래 들어 세상이 많이 바뀌어서 그런 건가.. 자꾸만 회사 인사시스템에 답이 없다는 생각이 든다. 그래서 지금까지의 회사생활. 제조회사에서의 개발자 직무가 어때 왔는지, 앞으로는 어떻게 될지에 대해 어느 정도 정리해 보려고 한다. 생각 흐름을 정리하고 나면 어느 정도 답을 찾을 수 있을까 싶어서.. 사실 지금까지 아등바등 잘해보려고 했던 것 같은데 이렇게 하는 게 .. 2022. 4. 24.
[쉬운 쉘 스크립트] bash shell 에서 원하는 문자 변경하는 방법 오늘 이런저런 출력들을 편집(?) 하다가 새로운 방법을 찾아서 정리한다.. 상황은 다음과 같았다. output 에 port address 와 hostname 이 다음과 같이 출력되고 있었다. $ cat spec.out 12345 host1 12344 host2 이 상태에서 내가 필요했 던 결과는 port@hostname 형식의 정보였다. 뭐.. 파일 자체를 바꿔도 됐겠지만. . 그냥 출력을 for 문에서 바로 바꾸고 싶었다. 일단 for 로 출력해보니 이렇게 나온다. $ for i in `cat spec.out` > do > echo $i > done 12345 host1 12344 host2 port 와 hostname 이 space로 구분되어 있다 보니 for 문에서 각 항목이 다른 iteration.. 2022. 4. 17.
docker log 확인하는 방법 / docker logs 명령에서 tail, since 사용하는 방법 Docker log 도커 명령어를 이용하여 생성 된 컨테이너의 log를 확인할 수 있습니다. 우선 실행 중인 컨테이너 리스트를 조회합니다. $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 980e699cd925 wordpress "docker-entrypoint.s…" 4 weeks ago Up 4 weeks 0.0.0.0:58755->80/tcp wordpress b7d989a6efb4 mysql:5.7 "docker-entrypoint.s…" 4 weeks ago Up 4 weeks 3306/tcp, 33060/tcp wordpressdb 그리고 확인하고자 하는 컨테이너의 로그를 아래 명령어를 통해 조회합니다. 저는 wordpres.. 2022. 4. 15.
리눅스 권한 유형 - setuid, setgid 그리고 sticky bit 의 개념 그리고 파일권한 대/소문자 s 의 의미 등잔밑이 어둡다더니.. 너무나 자주 봐 오던 권한의 의미를 가끔 정확하게 기억하지 못하는 경우가 생겨서 간단히 정리해 본다. 리눅스 권한 모든 리눅스 파일은 소유자 권한 그리고 File access mode를 갖는다. File access mode 는 리눅스에서 파일을 보호하기 위한 기본적인 설정이며, 각 문자는 아래의 의미를 갖는다. r : 읽기 권한. 파일의 내용을 볼 수 있다. w : 쓰기권한. 파일읠 수정하고 삭제 가능하다. x : 실행권한. 프로그램으로서 파일을 실행 할 권한을 갖는다. 그리고 모든 리눅스 파일은 아래 속성의 permission을 가지고 있다. Owner permissions : 소유자의 권한. 소유자가 갖는 해당 파일의 권한을 의미 Group permissions : 그룹 권한.. 2022. 4. 10.
Use case 의 종류 3가지 ( Brief, Casual, Fully dressed ) Formats of use cases Use case format에는 3가지 포맷이 존재하며 그 종류는 다음과 같다. - Brief - Casual - Fully dressed Brief - 간결한 요약 문 - 보통은 주된 성공 케이스에 대해서 요약된 내용을 포함한다. Casual - 격식없이 작성 된 paragraph format - 다양한 시나리오를 설명하기 위해 여러개의 단락으로 정리되기도 한다. Fully dressed - 모든 단계의 설명을 포함한다. - 각 조건에 대한 모든 사항을 설명하며 다양한 상황을 커버한다. 2022. 4. 6.
[디자인패턴] Singleton pattern (싱글톤 패턴) 의 Java 코드구현 예시 - 단일 스레드 환경 싱글톤 패턴의 목적 클래스에서 생성되는 인스턴스를 항상 하나로 유지할 수 있게 보장하기 위해 사용하는 패턴 싱글톤 패턴 코드 아래는 Java 를 이용한 가장 기본적인 싱글톤의 구현이다. public class MySingleton { private static MySingleton ms; private MySingleton() {} public static MySingleton getInstance() { if ( ms == null ) { ms = new MySingleton(); } return ms; } } 단일 스레드 환경에서는 위에 있는 코드를 사용해도 무리없이 동작한다. 다만, 다중 스레드 환경에서는 인스턴스를 저장하는 ms 가 null 임을 체크하는 과정에서 문제가 발생한다. 아래의 조건문을.. 2022. 4. 5.
[CS/SW설계] Object oriented development - 객체지향 개발의 개념 1 객체 지향 개발의 개념 이전 포스팅에 이어서 객체지향 개발의 개념에 대해 알아봅니다. 2022.03.24 - [CS] - [CS/SW설계] Basic principles of object oriented - 객체지향의 기본 원리에 대해 Software development 객체지향 개발을 알아보기 전에 우선 Software development (소프트웨어 개발) 이 무엇인지에 대해 생각을 해봐야 합니다. 소프트웨어 개발이라는 것은 아래와 같이 정의할 수 있겠습니다. "Solving problems with software in computer" 컴퓨터 소프트웨어를 가지고 문제를 해결하는 것 즉, 현실에서의 문제를 컴퓨터 프로그램을 만들어 실행함으로써 해결하는 것을 의미합니다. 이 과정에서 크게 3가지 .. 2022. 3. 25.