본문 바로가기
반응형

전체 글852

sqlalchemy - connect database Instance Database is not bound to a Session 해결하기 connect database Instance xxx is not bound to a Session; attribute refresh operation cannot proceed (Background on this error 해결 이 에러는 세션 close() 와 관계가 있다. 코드를 살펴보면, session을 close() 한 이후에 Database에서 가져온 Object 를 활용하는 코드가 있을 것이다. close()를 통해 세션을 닫게 되면, sqlalchemy 에서 관리하는 Object 도 함께 종료가 된다. 그런데 세션의 Object를 계속 사용하면 나타나는 오류이다. 예제로 살펴보면 다음과 같다. db_session = scoped_session(sessionmaker(autocommit=Fa.. 2024. 3. 30.
스타레일 - 아케론 베스트,추천 파티 조합 및 광추는? 아케론 베스트 조합은 키워드는 바로 디버프 이다. 그리고 이 디버프는 상태이상을 포함(도발등)하기 때문에 디버프를 어떤 방식으로든 생성할 수 있다면 아케론의 필살기를 빠르게 사용하는데 큰 도움이 된다. 그럼 1등공신은 어떤것이 있을까? 광추 먼저 광추부터 살펴보자. 아케론은 필살기에 집중되어 있고 필살기를 발동하기 위해서는 상태이상, 즉 디버프를 많이 걸어야한다. 따라서 자연스럽게 적들은 디버프를 주렁주정 달려있을 것이다. 하여 광추는 전용 광추를 제외하면 밤 인사와 잠든 얼굴 이 제일 효율이 좋다. 디버프 3개 보유시 5재련 기준 72% 피해증가이기 때문에 전용 광추 못지 않은 성능이라고 할 수 있다.(전용광추 기준 피해량 증가는 1재련 기준 48%) 전용광추가 더 좋지만 4성으로 얻을 수 있는 난이도.. 2024. 3. 28.
VSCode - 쓸만한 무료 코파일럿(Copilot) GitHub Copilot은 VScode를 활용해서 코드 생성시점에 편한게 코드를 미리 생성해주기 때문에 상당한 코드 생산성을 가지고 있다. 하지만 월 결제 방식의 유료이기 때문에, 사용하고자 할 때 적지 않은 부담이 생길 수 밖에 없는데, 여기에서는 VSCode에도 제공되고 무료로 사용할 수 있는 Codeium을 소개한다. https://codeium.com/playground Playground | Codeium · Free AI Code Completion & Chat Experience the power of Codeium right in your browser. No account or download needed. See how you could level up your development .. 2024. 3. 26.
VSCode - Python 자동 주석 생성 autoDocstring 코드를 작성하다보면, 코드가 점점 길어지고, 작성한 함수에서 사용하는 파라미터를 일일이 기억해서 사용하는것이 어려워진다. 이때 함수에 작성해 놓은 주석 생성을 도와주는 유용한 앱이 있다. autoDocstring 앱을 설치하고 쌍따옴표 3개를 입력하면 Docstring을 생성할 것인지를 확인하는 창이 나타난다. 여기에서 엔터를 누르면, 현재 기준으로 함수 설명, 입력 값, 출력 값의 기본 포맷을 만들어 주어서 쉽게 설명을 작성할 수 있다. 2024. 3. 25.
Python - Log Decorator 활용 이글을 통해 Python에서 제공하는 중요 기능중 하나인 Decorator를 활용한 Log Decorator관련해서 정리해보고자 한다. Decorator 활용이 Log에 적절한 이유는 Decorator는 Python 설명을 보면 잘 나와 있듯이 함수를 감싸는 기능을 제공하기 때문에 실행전, 실행후에 일관성있게 정의하여 적용하고자 할때 Decorator만 한 것이 없다. 즉 log 입장으로 보면, 함수 실행전과 실행후에 대한 로그를 한번에 구성할 수 있어서 매우 유용하다고 할 수 있겠다. 그리고 개발한 프로그램을 서비스할 때 문제 분석을 위해 로그를 기록해야 하는 경우 log를 위한 코드를 추가를 해야하기 때문에 Decorator를 활용하기가 제격이라고 할 수 있다. 가장 간단하게 만들수 있는 log De.. 2024. 3. 25.
Python - 왜 f-string을 쓰라는 걸까 "Formatting a regular string which could be a f-string" Vusual Studio Code를 작성하다보면 기존 format 습관에 다음과 같은 경고문구를 자주 접하게 된다. Formatting a regular string which could be a f-string 필자도 본 경고가 눈에 띄어서 찾아본 결과 Python 3.6 버전부터 만들어진 새로운 문자열 작성 방법으로 f-string 사용을 권장하는 것이다. 이유는 보다 간결히 작성이 가능하다는 것. 그리고 코드 실행상의 성능 이점도 있다고 한다. 다만 %-formatting 이 가장 속도상 이점이 있지만, 기존 format 을 사용하는 방식보다 속도 개선과 코드 가독성이 좋은 f-string이 가장 효율적일 것으로 판단된다. %-formatting >>> timeit.timeit("""test = ".. 2024. 3. 25.
Python - -u PYTHONUNBUFFERED 사용 Python을 Docker 혹은 백그라운드에서 사용하는 빈도가 높아지면서 -u/PYTHONUNBUFFERED 를 사용하는 일이 많아졌다. -u/PYTHONUNBUFFERED를 사용하면 Python 출력 내용을 버퍼에 넣지 않고 바로 출력하라는 의미가 된다. 프로세스를 백그라운드로 실행시에는 -u를 많이 사용하고, Docker와 같이 시스템 자체에 적용하는 PYTHONUNBUFFERED 도 사용할 수 있다. -u force the stdout and stderr streams to be unbuffered; this option has no effect on stdin; also PYTHONUNBUFFERED=x 예로 nohup 백그라운드 실행을 해보면 -u 옵션이 없는 경우 nohup.out에 출력내용이.. 2024. 3. 25.
Python - Mocking/단위 테스트(Unit Test) 과 Django 활용 Mocking? 개발한 코드는 실제 서비스를 제공하기 전에 정상적으로 동작하는지 테스트가 필요하다. 또 서비스중인 시스템에 추가적인 기능 개발이 들어간다면, 테스트를 진행해야 하는데, 실제 서비스를 진행하고 있을 때 테스트를 한다거나, 환경이 다른 네트워크 데이터 베이스 유저등을 수정해야한다면, 개발한 내용에 대한 테스트가 어려울 수 있다. 이렇게 다양한 환경이나 서비스등의 영향이 발생할 수 있는 상황에서 개발된 기능을 테스트하는데 어려움이 있을 수 있기 때문에 이를 돕기 위해 등장한 개념이 바로 가짜 객체(Mock Object)를 만들어 테스트하는 것을 Mocking라 할 수 있다. Mocking은 다음과 같은 문제에 도움을 준다. Mocking이 필요한 경우 위험요소나 복잡도가 높은 경우 매우 효과적.. 2024. 3. 25.
Python - Class, self 메모리 할당과 관리 Reference counting Python는 개발 편의성을 위해서 메모리 관리를 별도로 하지 않아도 사용이 가능한 프로그램 언어이다. 그리고 최근에 나오는 언어들은 GC(Garbage Collection)라고 하는 메모리 청소 도구 통해 자동으로 메모리에서 불필요한 데이터를 청소해 준다. 하지만 개발자라면 서비스를 위해 개발을 진행하게 되고, 이는 운영체제에서 장시간 사용되는 프로그램을 작성해야 한다는 의미이다. 이때 메모리 관리를 잘못한다면 안정성에 큰 문제가 생기게 된다. 즉 큰 장애를 만날 수 있다는 의미이다. 여기에서는 메모리 관리가 어떻게 되는지 이해하여, Python 코드를 보다 효과적으로 사용할 수 있을 것이라는 생각에, 관련 자료를 찾아서 정리해본다. Python에서 메모리 관리에 사용하는 방식은 Reference co.. 2024. 3. 25.
반응형