이런저런 기능같은 거 추가하면서 깨달은 것

기능 하나 추가하려면 고려할 게 많다

FASTA파일 관련 기능 하나 추가하는데도 고려할 게 꽤 많았다.

  1. FASTA 파일을 열기 위한 브라우저 출력
  2. 꺾쇠가 하나인 것만? 여러개인 것도? (Biopython은 꺾쇠가 하나인 것과 여러개인 것을 열 때 쓰는 메소드가 다르다)
  3. 꺾쇠가 하나인 것만 열 때, 에러 처리는 어떻게 하는가? (이게 그 Try Except 그거임)
  4. FASTA 파일 or 입력 로직은?

참고로 브라우저가 뭐냐면

이거다. (저건 리눅스라 저렇게 뜬다)

단식으로 잘 되던게 코드 합류하고 안될 때가 있다

그것은 리터럴리

딱 이거 마려운 상황이다.

보통 코드에 이식하기 전에 내가 생각해 둔 로직이 맞는지 별도로 VScode나 Jupyter 통해서 테스트를 해 보는데, 그 때는 잘 되던 게 코드 합류하고 안 되는 경우가 좀 있다. 대표적으로 지금 함수로 때려박은 변환 기능같은 거…

함수와 클래스는 정말 좋은 툴이다

원래 함수 잘 안 쓰는 편인데… 이게 생각보다 개념 이해하기는 빡센데 일단 도입하면 편하다. 클래스는 대충 쿠키 찍어내는 틀에 비유하던데, 정의할 때 보면 클래스 안쪽에 def로 또 함수 정의하데… 아무튼…

파이썬 내장함수도 있지만 외장함수(…) 만들어서 쓰면 생각보다 편하다. 본인 실제로 백순 소수쪽 풀이도 함수 도입해서 푸는 중. 함수 없었으면 아마 소수 찾는 로직으로 개 노가다를 하고 있었을테지만… 함수 도입하면서 깔(별)끔해졌지… 근데 외장함수는 뭐냐 내장함수 반대말이 외장함수 아님? 무슨 하드디스크여 

컴퓨터 생각보다 댕청함

사람은 보통 개떡같이 말해도 찰떡같이 알아듣는다… 문맥에 따라 단어의 뜻을 이해한다던가, 그래서 이놈이 문자인지 숫자인지 정도는 알아서 구별하지만 컴퓨터는 그렇지 않아요… (마른세수) FASTA 기능 도입하고 시퀀스 인식 못하길래 문자열화 했다…

Biopython에서 시퀀스 데이터를 가져오게 되면 문자열 타입이 아니라 시퀀스 타입이 되는데 이 상태로는 정규식을 못 들어간다. 그래서 따로 str() 써서 변환했다. 그거 말고도 하다보면 아니 이걸 일일이 알려줘야된다고? 싶은 거 꽤 많다…

IDE는 여러 개 굴리자…

본인 주로 VScode(얘는 엄밀히 말하자면 IDE는 아니지만)랑 Jupyter notebook 쓰는데, 꼭 여기서 하나씩 안될 때가 있다. 단적인 예로 Jupyter에서는 sys.stdin.readline()이 안 먹히고(인풋은 들음), VScode에서는 바이오파이썬 계열의 모듈을 못 불러온다. 그래서 spyder랑 pycharm도 같이 굴리는 중… 스파이더 저거는 한영전환 또 안되더라…

참고로 Jupyter는 일종의 인터프리터라서 줄단위로 실행하는 게 가능하다. 그래서 간단간단한 거나 줄단위로 반복할 구간이 있는 경우에는 Jupyter를 쓰고, 백준 풀 때는 sys.stdin.readline()때문에 VScode 쓴다. …근데 원래 컴파일러 계열이었나 파이썬이? 왜 뭔자 아느냐면 수능에 나와서요