본문 바로가기

전체 글

(133)
[리뷰] 관리 트랙을 넘어선 기술 리더십 - 스태프 엔지니어 '관리 트랙을 넘어선 기술 리더십 - 스태프 엔지니어(윌 라슨 저자(글) · 장현희 번역)'를 읽고 후기를 기록한다. 회사에서 개발팀 리드를 맡게 된 이후 관리자로서의 방향과 개발자로서의 방향에 대해서 고민이 많았었다. 스태프 엔지니어는 여러 회사의 시니어 개발자분들이 관리자 이외의 기술 리더로서의 방향과 트랙에 대해서 다양한 회사와 환경에서 고민한 내용들과 겪으신 이야기들이 담겨져 있어서 현재 고민되는 많은 참고가 되었다. 아직 한국의 경우에는 시니어 개발자에서 조직 관리자로 변화하게 되면 기술자로서의 실무와 별도로 관리의 업무에 집중되는 경우가 많아서 기술적인 집중이 어려운 부분이 있고, 관리자로서의 역량과 기술자로서의 역량이 다른 부분들을 많이 봤었다. 해외에서는 시니어 엔지니어 이후의 커리어 트랙..
sqlalchemy 2013: Lost connection to MySQL server during query 이슈 해결 engine = create_engine(DATABASE_URL, connect_args={'connect_timeout': 120}, pool_pre_ping=True) 1. create_engine 에서 parameter 로 시간제한 증가 설정
WARNING ITMS-90076 iOS 앱스토어 앱 이전 시 아카이브 경고 iOS 앱 이전 후 앱스토어에 아카이브를 올릴때 다음과 같은 경고가 노출된다. WARNING ITMS-90076: "Potential Loss of Keychain Access. The previous version of software has an application-identifier value of [‘이전TeamID.BundleID’] and the new version of software being submitted has an application-identifier of ['이후TeamID.BundleID']. This will result in a loss of keychain access." 빌드 시 앱에 연결된 애플 개발자 계정이 변경될 경우 이전 키체인이 손실된다는 경고이다. 기존..
building for iOS Simulator, but linking in object file built for iOS, file for architecture arm64 오류 해결 인텔 맥에서 작업하던 IOS 프로젝트를 실리콘맥에서 세팅 및 빌드 시 'building for iOS Simulator, but linking in object file built for iOS, file for architecture arm64' 오류가 발생했다. 해당 문제 발생 시 Build Setting에서 Excluded Architectures 에 arm64를 추가하고, Xcode 에서 Open using Rosetta를 선택 후 Xcode를 재시작하여 해당 문제를 해결했다. 다만, Rosetta(로제타)를 사용할 경우 M1의 성능을 다 발휘할수 없기 때문에, 시뮬레이터만 Rosetta만 사용하는것도 가능하다. * 로제타(Rosetta)란 Intel 프로세서가 장착된 Mac 용 제작 앱을 App..
SOLID - 인터페이스 분리 원칙 (Interface Segregation Principle) 인터페이스 분리 원칙 클라이언트는 사용하지 않는 인터페이스에 의존하지 않아야 한다. 클라이언트는 필요하지 않거나 사용하지 않는 매서드에 의존해서는 안된다. 또한 인터페이스 분리 원칙은 단일 책임 원칙과 마찬가지로 하나의 작업만 수행해야 된다고 명시되어 있다. 무의미한 메소드의 구현을 방지하기 위해서 필요한 메소드만 상속/구현하도록 권고한다. 상속 객체의 규모가 크다면 작은 인터페이스로 나누는 것이 좋다. #참고자료 https://blog.bitsrc.io/solid-principles-every-developer-should-know-b3bfa96bb688
SOLID - 리스코프 치환 원칙 (Liskov Substitution Principle) 리스코프 치환 원칙 하위 클래스는 상위 클래스를 대체할 수 있어야 한다. 이 원칙은 하위 클래스가 오류 없이 상위 클래스를 대신할 수 있는지 확인하는 것이다. 리스코프 치환원칙이 지켜지지 않으면 다형성에 기반한 개방 폐쇄 원칙을 위반하는 것이다. Steve Fenton 이 가정한 리스코프 치환 법칙의 요구사항은 다음과 같다. - 상위 클래스에 상위 클래스 유형 매개변수를 허용하는 메서드가 있는 경우, 하위 클래스는 상위 클래스 유형 또는 하위 클래스 유형을 인수로 받아들여야 합니다. - 상위 클래스가 상위 클래스 유형을 반환하는 경우, 하위 클래스는 상위 클래스 유형 또는 하위 클래스 유형을 반환해야 합니다. #참고자료 https://blog.bitsrc.io/solid-principles-every-d..
OAuth 1.0, OAuth 2.0 OAuth(Open Authorization)는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다 OAuth의 탄생 이전에는 API 접근 위임 방식(API Access Delegation)이 가능한 표준화되지 않은 각각의 인증 방식을 제작하여 사용했다. OAtuh는 API 제어의 목적으로 인증에 참여한 각 이해관계자가 어떻게 서로를 신뢰할 수 있을까에서 시작하였다. 2006년 비밀번호의 통신 문제로 안전한 표준 인증방식에 대한 논의를 통해 2007년 OAuth 1.0이 만들어지고, 2010년에 IETF OAuth 워킹그룹에 의해 IETF 표준 프로토콜로 ..
FastAPI 환경에서 Nginx 와 Uvicorn 을 통한 Deploy + Nginx 와 WSGI(Web Server Gateway Interface)/ASGI(Asynchronous Server Gateway Interface)를 같이 사용하는 이유 - Nginx은 비동기로 외부의 작업연산(요청)을 listen하여 WSGI/ASGI로 전달 (nonblocking to, 더 많은 연산을 빠르게 처리) (Apache는 연산 작업을 책임지고 수행(blocking io)하여 연산을 더 안정적으로 처리) - WSGI/ASGI가 요청을 수행 (Event Driven) - 이벤트 생성, 소비의 주체 분리 (Producer-Counsumer Pattern) - Nginx가 Event loop에 등록한 작업연산(요청)들을 WSGI(ASGI)가 처리하고 결과를 응답하면 Nginx가 클라이언..

반응형