프로젝트를 진행하던 중 pymysql 모듈이 분명히 설치되어 있음에도 불구하고, import하지 못하는 이슈가 있었다. pip list 명령어를 통해 설치 되어있음을 확인할 수 있었다. 해결법 1 검색 결과, pip가 아닌 apt-get을 통해 설치하여 해결할 수 있었다. pip는 파이썬 패키지 관리 도구이고, apt-get은 Debian 계열의 Linux(Ubuntu등) 에서 사용하는 시스템 패키지 관리 도구이다. pip로 설치했을때 pymysql이 작동 안하는 이유는 잘 모르겠지만, 더 상위 계층 패키지 관리 도구를 사용해야 정상 작동하는 것이 아닌가 싶다. 모듈은 다음 명령어를 통해 설치 가능하다. sudo apt-get install python3-pymysql 해결법 2 또 다시 이 에러가 발생..
Vscode에서 python 파일을 실행하거나 디버깅 모드를 실행할 때 디버거 창이 잠깐 뜨고 아무 일도 일어나지 않는 버그를 겪었다. 이는 vscode python extension의 최신버전 문제라고 한다. Python Extension ➡️ Install Another Version으로 2022.8.1 버전으로 다운그레이드 해준다. 정상 작동! 출처: https://jlog1016.tistory.com/106
ide를 vscode와 Intellij를 혼용해서 쓰다보니 단축키가 헷갈리는 경우가 종종 있다. 그때 보기 좋은 표. intellij vscode .. alt + j ctrl + d 같은 코드 중복 선택 및 수정 shift + f10 이전 실행 재실행
클린 아키텍쳐 5장 ****객체 지향(Objected - Oriented)의 본질은 무엇인가?**** 캡슐화? 객체 지향 언어는 데이터와 함수를 쉽고 효과적으로 캡슐화하는 방법을 제공한다. 이를 통해 데이터와 함수가 응집력 있게 구성된 집단을 서로 구분 짓는 선을 그을 수 있다. 구분선 바깐에서 데이터는 은닉되고, 일부 함수만이 노출된다. c언어에서도 데이터 구조와 함수를 헤더파일(노출부)에 선언하고, 구현 파일(은닉부)에서 구현하는 방식으로 캡슐화를 지킬 수 있다. 상속화? 객체 지향 언어는 캡슐화를 강제하지 않지만, 상속은 확실히 제공한다. C언어에서는 상속을 흉내낼 수 있을 뿐, 상속의 기능을 제공하진 않았따. 다형성? 다형성은 기존에 존재하던 함수 포인터를 응용한 것이다. 다형성의 매력은 , 의존..
들어가는 장 권장하는 TDD 훈련 방법 간단하고 쉬운 문제들을 TDD로 시도한다. 가능하면 전에 접하고, 프로그래밍해본 문제가 좋다. 초록 막대 주기(이전 초록 막대와 다음 초록 막대 사이의 간격)는 가능하면 짧도록 한다. 초록 막대 주기의 최대 시간을 정하고, 이를 초과하면 이전 초록 막대 상태로 돌리고 새로 시작한다. '진짜로 만들기 전까지만 가짜로 구현하기' 를 적극적으로 사용하려고 노력한다. 같은 문제를 여러번풀어본다. 초기에는 리팩토링 툴을 사용하지 않는 것이 좋다. 개발을 할 때 하항상 다음 두가지 법칙을 따른다. 어떤 코드건 작성하기 전에 실패하는자동화된 테스트를 작성할 것 중복을 제거할 것 뱅크 샐러드 개발자님과의 만남 최근 실제로 사내 대부분의 IOS 사업부에서 사용할 스위..
AWS에서 EC2 인스턴스를 생성하게 되면 public/private 키 쌍이 생성되고public ➡️ AWS 인증서버private ➡️.pem 파일로 로컬에이런식으로 저장이 된다. 하지만 만약 pem 파일을 잃어버렸거나, pem파일이 없는 기기에서 ssh로 접속을 하고 싶을 때 다음의방법을 따르면 된다. 로컬에서 public/private 키쌍을 생성$ cd ~/.ssh/$ ssh-keygen -f ~/.ssh/id_rsa_keyname 해당 위치에서 ssh-keygen 커맨드를 입력하면, 다음 두 파일이 생성된다. id_rsa (프라이빗키) id_rsa.pub(퍼블릭키) 만약 이전에 사용하던 키가 있다면, 이 과정은 생략해도 된다. 생성된 public 키를 EC2 인스턴스에 복사EC2 인스턴스의 ~/..
12장 - 창발성 창발적 설계로 깔끔한 코드를 구현하자. 창발성이라는 말이 조금은 생소할 수 있다. 창발성이란, 복잡한 시스템이나 구조의 특성이 간단한 구성 요소들의 상호작용을 통해 나타나는 현상을 말한다. 다시 말해, 간단한 부분들의 조합으로 인해 전체적인 시스템이나 패턴이 생겨나는 것을 의미한다. 아래 네가지 규칙을 준수한다면 소프트웨어 설계 품질은 크게 높아진다. 모든 테스트를 실행한다. 중복을 없앤다. 프로그래머 의도를 표현한다. 클래스와 메서드 수를 최소로 줄인다. 단순한 설계 규칙 1 : 모든 테스트를 실행하라 테스트가 불가능한 시스템은 검증이 불가능하다. 그리고 검증이 불가능한 시스템은 절대 출시하면 안된다. 결합도가 높으면 테스트 케이스를 작성하기 어려우므로, DIP와 같은 원칙을 적용하고..
KEY에 대한 이해가 부족하다면 KEY를 정리한 포스팅을 먼저 보고 오자. 2023.07.19 - [📚CS/📘데이터베이스] - [DATABASE] - Key 완벽 이해하기 (기본키, 후보키, 외래키 등) [DATABASE] - Key 완벽 이해하기 (기본키, 후보키, 외래키 등) key는 데이터베이스의 가장 중요한 개념이다. key는 데이터베이스(혹은 릴레이션) 내에서 특정 레코드(tuple)를 고유하게 식별하기 위해 사용되는 필드 또는 속성(attribute)을 의미하고, 그 종류로는 kangmanjoo.tistory.com 정규화(Normalization)란? 정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 데이터를 허용하지 않음으로서 무..