전체 글
-
메모리 덤프에 남는 String 없애기iOS/Swift 2025. 8. 5. 18:18
회사에서 ISMS-P인증을 한다... 모의 해킹에서 메모리 덤프에 사용자의 ID, PW가 평문으로 노출됨! 하지만,,, 로그인 하면 textfield.text = nil 처리를 하고 있었고, 해당 정보는 local scope에만 존재하고 있었다. 원인이 무엇일까!예상 원인은 두가지로 추렸다... TextField.text가설사용자의 ID, PW는 Textfield.text를 통하여 String으로 값을 가져온다.이 때 지역변수에 이 값을 선언하면 Heap메모리에 이 값이 적재될 것이고, Stack에 있는 String의 주소를 해제하더라도ARC가 바로 Heap의 String의 value를 해제해주지 않을 것이므로, 메모리 덤프에서 ID, PW가 노출될 것! 해결Textfield Delegate를 사용하여,..
-
error: Cycle inside {$Project}; building could produce unreliable results.iOS/Swift 2025. 7. 21. 10:43
Cocoapods -> SPM으로 전환하다가 발생한 에러.Firebase를 사용하는 관계로, run script에 input파일이 여러개 추가되고 실행해야 했다 (링크) Firebase Crashlytics 시작하기새로운 Firebase Studio 기능부터 AI 통합 방법까지 I/O에서 발표된 모든 내용을 확인해 보세요. 블로그 읽기 의견 보내기 Firebase Crashlytics 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로firebase.google.com 이 때 제목의 에러가 발생했는데, 여러 LLM은 할루시네이션을 하더라,,,결국 문제는 buildPhase의 순서가 문제였다.생각하면 곧 알수있는 문제였음.... LLM 의존 문제가 심각하다. build 산출물이 생성된 후 run sc..
-
-
matrix_Leetcode_54. Spiral Matrix알고리즘/알고리즘 문제풀이 2025. 4. 14. 17:42
https://leetcode.com/problems/spiral-matrix/description/?envType=study-plan-v2&envId=top-100-liked 문제접근1. DFS를 사용하여 matrix 탐색2. Flag를 사용하여 matrix 탐색위 두 방법을 썼을 때에, 최소 O(mn) ( 어찌 되었든 모든 cell을 방문해야 함 ) 줄단위 처리를 고민하며 아래 코드를 작성특정 경우에 줄단위 처리를 하여 조금 더 빠를 수도 있음! spiral을 제어하는 move같은경우 enum으로 작성하면 더 좋을 수 있지만,귀찮았기 때문에,,,,정답코드0msBeats100.00%19.73MBBeats41.55% -> 0.6MB 차이더보기class Solution { func spiralOrde..
-
matrix_Leetcode_240. Search a 2D Matrix II알고리즘/알고리즘 문제풀이 2025. 4. 10. 16:32
https://leetcode.com/problems/search-a-2d-matrix-ii/description/?envType=study-plan-v2&envId=top-100-liked 문제접근아이디어1주어진 매트릭스는 x,y가 증가하는 방향으로 이동하면 해당 index의 value가 증가한다.다만, (3,1)의 값이 (2,3) 보다 항상 크지 않다. 대소 비교는 각 행, 열 마다 개별적이다.bfs를 이용하여 조건에 맞는 index가 존재하는지 찾는다.아이디어2행 렬을 꼭 이동하지 않고, 그리디에 가깝게 풀어보기? 정답코드아이디어 1을 사용하여 정답을 맞춘 코드그런데, 129msBeats5.56% 로 성능이 좋지는 않다.더보기class Solution { struct Point: Hashab..
-
BinaryTree_Leetcode_236. Lowest Common Ancestor of a Binary Tree알고리즘/알고리즘 문제풀이 2025. 4. 3. 15:47
https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/?envType=study-plan-v2&envId=top-100-liked 문제접근DFS를 사용하여 p, q를 탐색탐색하며 지나온 TreeNode를 배열로 기록p,q를 찾았다면, 각자 지나온 기록 Treenode 배열에서 겹치는 마지막 element탐색탐색 결과 반환정답코드성능이 처참하다..831msBeats5.74%더보기/** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var left: TreeNode? * pu..
-
BinaryTree,BFS_Leetcode_199. Binary Tree Right Side View알고리즘/알고리즘 문제풀이 2025. 4. 3. 15:34
https://leetcode.com/problems/binary-tree-right-side-view/?envType=study-plan-v2&envId=top-100-liked 문제접근각 depth의 가장 우측의 Treenode.val을 상위depth부터 하위depth로 array로 반환해야 함.각 depth별 Treenode를 전부 알아야하기에, 전체 순환을 돌아야 한다고 생각약간의 꼼수?로 TreeNode의 갯수가 최대 100개이므로, 전체 순환을 돌아도 된다고 생각함.brutalForce에 가깝지만, queue를 사용하여 BFS한다. 이 때, 좌측 Treenode를 먼저 탐색한다좌측 먼저 탐색하여 가장 마지막에 해당 Depth에 탐색된 값을 사용한다정답코드map을 [Int: [Int]]구조로 사..