본문 바로가기

전체 글131

[macOS] NSImage가 메모리에서 해제되지 않는 오류 해결 메모리 누수 프로파일링을 통해 메모리 누수 발생 확인 1. 메모리 누수 상황 1 - NSImage메모리 해제 안됨 원인 파악 프로파일링 결과, 앱의 한 사이클을 모두 돈 후, SelectFileView로 되돌아왔을때 VM에서 NSImage를 저장하는 메모리를 해제시켜주지 못하고 있음 똑같은 이슈: https://stackoverflow.com/questions/17666679/uiimageview-not-releasing-memory-according-to-vm-tracker-low-memory-warnings 참고 Allocation, Leak, VM Tracker 분석 결과 Allocation: 앱의 한 사이클을 다 돌고 난 후에도 CGImage가 VM영역에서 해지되지 못함 Leak: 여러가지 원인으.. 2024. 1. 13.
[macOS] 이미지가 많은 뷰 성능 최적화 - LazyVGrid macOS앱 개발을 하며, 뷰에 이미지를 굉장히 많이 로드해야 하는 상황이 발생했습니다. 앱의 특성상, 저장된 이미지는 무조건 고화질로 NSImage변수에 저장되어있어야 하며, 모든 이미지들의 위치값을 갖고 있어야 하는 상황입니다. 뷰에 수백개의 이미지들을 ScrollView에 넣고, 이미지들을 드래그하는 기능을 구현했습니다. 문제는 모든 이미지들의 위치값을 갖고 있어야 하며, 이 위치값을 통해 드래그 기능을 구현하는 방식으로 개발을 진행하는 과정에서 뷰가 너무 많은 이미지를 한꺼번에 로드하는 바람에 앱의 성능이 현저하게 떨어지는 경험을 했습니다. 최적화 전 - 한번에 모든 이미지를 불러와, 각 이미지들의 위치 값을 저장하는 방식 모든 이미지들의 위치값을 저장하기 위해 한번에 모든 이미지를 불러와, 각 .. 2024. 1. 13.
[macOS] 파일 선택 기능 - Drag & Drop, NSOpenPanel macOS에서 파일 업로드하는 기능을 개발하였습니다. File 업로드 기능 구현 방식 1) Drag & Drop 방식 2) NSOpenPanel 방식 1. Drag & Drop 방식 공식 문서 https://developer.apple.com/documentation/swiftui/drag-and-drop Drag and drop | Apple Developer Documentation Enable people to move or duplicate items by dragging them from one location to another. developer.apple.com onDrop 방식 예제 코드 struct ContentView: View { @State private var droppedIma.. 2024. 1. 12.
[프로그래머스/python/Lv2] k진수에서 소수 개수 구하기 코딩테스트 연습 > 2022 KAKAO BLIND RECRUITMENT > k진수에서 소수 개수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import math def decimalToK(num, k): # k진수로 변환 kNum = "" while num > 0: kNum = str(num%k) + kNum num = num//k return kNum def isPrimeNumber(num): if num < 2: # 2 이.. 2023. 12. 17.