2023. 1. 10. 00:46ㆍTIL(Today I learned)
🏴Facts(한 것) & Findings(배운 것)
* PayHere 과제 전형 완료
항상 Java를 써오다가 python 직무로 지원 했는데 운이 좋게 서류를 합격해서 주말포함 3일동안 과제에 매달렸어요.
FastAPI를 사용은 해봤지만, 정말 간단하게만 사용했고, 디렉토리 구조도 엉망이어서 사용했다고 말하는 것도 조금 민망하네요.
어쨌든 과제 전형을 진행하기 위해서 레퍼런스를 정말 많이 찾았다녔어요.
처음 2일동안 좋은 디렉토리 구조를 찾지 못해서 Spring에서 쓰던 MVC 구조로 설계를 해고,
올바르게 동작하는 것을 확인했어요.
그러다 둘 째날 저녁 최고의 FastAPI 예제를 발견합니다.
이 프로젝트를 진행한 사람은 무려 "FastAPI" 창시자.
FastAPI 아키텍처에 완벽한 레퍼런스를 적용했고, 저는 이 구조를 모방하기로 합니다.
마이그레이션 한지 5시간쯤 지났을까요,
불연듯 과거의 기억이 떠올랐어요.
"옮기는것 보다 새로 짜는게 더 빠르다"
마이그레이션은 에러의 연속이였고, 결국 마감 한 시간 전에 마이그레이션을 끝냈어요.
과제를 진행하면서 좋았던 것은 FastAPI에 엄청 익숙해질 수 있는 시간이어서 좋았고,
파이썬에 대해서 좀 더 깊이있게 공부하는 계기가 되었어요.
아쉬웠던 것은 테스트 작성하는 것을 정말 좋아하는데,
3일 이라는 짧은 시간에 테스트 작성할 시간이 없었고(FastAPI에 익숙하지 않은 탓),
통합 테스트는 방법을 한참 찾다 작성하지 못했고,
단위 테스트도 시간이 없어 작성조차 못했어요....
과제 리포지토리에 커밋은 못하지만, 로컬에서 단위테스트는 작성해보려고합니다.
* Spring과 FastAPI 비교
- 코드의 양 FastAPI <<<< Spring
- 개발 속도 (익숙할 시) FastAPI >= Spring
- 빌드 속도 FastAPI >>>> Spring
- 테스트 편리성 FastAPI <<< Spring
장점
- 다양한 라이브러리 지원(파이썬 장점)
- 작성 편리함
- 타입이 없음
- 빠른 실행 속도
- ORM의 편리성 (JPA보다 편함)
- 다중상속 지원 (파이썬 장점)
단점
- 타입이 없으니 불편
- 파이썬의 타입 추론은 코틀린의 타입 추론과 달리 런타임에 결정돼서 에러 처리에 매우 불편
- import 속도 느림
- 인터프리터 언어이기 때문에 크리티컬한 이슈가 아닌 이상 동작함 (에러 문장을 만나기 전까지)
- Spring Security 같은 filter의 부재 -> dependecy를 줘서 구현은 가능하지만 상당히 까다로움
- 접근자의 부재(public, private 등) -> 이름으로 구분해야함. 구조를 어지럽힐 가능성 O
사실 Java 개발자가 Python으로 객체지향을 구현해보면 가장 신기한 것이
class가 없는데 함수 호출이 가능한 것이다.
인스턴스가 없는데 함수 호출이 된다니!!!!
* 야놀자 서류 합격
이력서를 수정하고 지원했더니 합격했다.
코딩 테스트 쳐야하는데 이번주에 코딩테스트와 면접이 3개다.
'TIL(Today I learned)' 카테고리의 다른 글
(TIL) 20220119 (0) | 2023.01.20 |
---|---|
(TIL) 20230110/ 프로젝트 진행, 코드 컴플리트 다시 읽기 (0) | 2023.01.11 |
(TIL) 20220105 / 대규모 서비스를 지탱하는 기술 (0) | 2023.01.06 |
(TIL) 20221231/ 22년 마지막 TIL (0) | 2022.12.31 |
(TIL) 20221214/ 함수형 프로그래밍에서의 순수 함수 (0) | 2022.12.15 |