본문 바로가기

전체 글294

python 배열 slicing(item[2:])의 성능은 왜 O(n)일까 파이썬을 쓰신다면 items[2:] 같은 slicing 문법을 보셨을텐데요. 이 기능이 매번 메모리 할당을 한다는 것을 알고 계신가요? 실제로 실행해보는 것만큼 정확한 건 없으니 디버깅을 해보겠습니다.이런 파이썬 코드를 가지고 확인해보겠습니다.items[2:] 는 어떻게 동작하는 걸까요? 결론부터 말씀드리면 필요한 length만큼 메모리를 확보하고 for 문을 통해 items 값의 복사가 이루어집니다. 즉, 시간/공간 복잡도가 O(n)이 됩니다.디버깅을 통해 실제 동작을 확인해보겠습니다. cpython 의 구현체를 기준으로 진행하고 c 언어이기 때문에 vscode와 c/c++ extenstion을 사용하여 디버깅을 진행합니다. 3.14 버전를 기준으로 설명합니다.slicing에 대한 주요한 로직은 lis.. 2026. 7. 26.
오픈소스에 기여하기(스프링 프레임워크) 오픈소스 기여모임 10기로 활동을 시작했는데, 요즘 스프링 프레임워크를 계속 쓰고 있으니 기여를 한 번 해보고 싶다는 생각을 했다.오프라인 밋업도 참여했는데, 스프링 프레임워크에 공식 문서 관련한 이슈가 하나 눈에 띄었다. https://github.com/spring-projects/spring-framework/issues/36082이슈 내용은 스프링 7 부터 api 버전 관련 기능이 생겼는데 "no value인 경우에 대한 문서를 명확하게 해달라"는 의견이었고 메인테이너가 "반영하겠다"고 커멘트를 남겨두었다. 간단히 설명하면, 특정 버전(예: v1.0, v2.0)이 명시된 메서드가 하나라도 생기면, 'No value' 메서드는 그 새로운 버전에 의해 대체 된다. 즉, 더 구체적인 버전이 있다면 '.. 2026. 1. 15.
%EA%B0%80 와 같은 문자들은 도대체 무엇일까 웹 프론트엔드 개발을 하다보면 %EA%B0%80 와 같은 요상한 문자들을 만날 때가 있다.인코딩, 디코딩, 인코더, 디코더 등 과 같은 단어들도 종종 만난다. 인코딩, 디코딩, 한글 인코딩, .. 뭔가 와닿지 않는다. 용어도 어렵고 원리가 잘 이해되지 않는다. 숫자를 2진수로 변환해서 컴퓨터에 저장한다는 것은 알거나 들어봤을 것이다.문자도 똑같다. 2진수로 변환해야 한다. 어떻게 변환할까? 이 규칙에는 여러가지 규칙이 있다. 그래서 더 헷갈린다. ASCII, UTF-8, UTF-16 등등 수많은 규칙들이 존재한다. 역사적으로 ASCII 부터 시작해서 현재 표준처럼 쓰는 것은 UTF-8이라는 것 정도 알면 될 것 같다.정리하면, UTF-8이라는 방식으로 문자를 이진수로 변환한다. 이것이 인코딩이다.10 -.. 2025. 12. 24.
배달의민족 주문접수 채널에 플러터 도입 후기 https://techblog.woowahan.com/24337/ 배달의민족 주문접수 채널에 Flutter를 도입하며 고민한 것 | 우아한형제들 기술블로그들어가며 배달의민족 주문접수 채널은 파트너의 주문 관리를 돕기 위해 매일 수백만 건의 주문을 실시간으로 처리하며, 다양한 디바이스를 지원하고 있습니다. 점차 다양해지는 디바이스 생태techblog.woowahan.com 2025. 12. 17.