본문 바로가기

전체 글

(182)
AI와 함께하는 SOLO POTENDAY - 비사이드 후기 및 배운점 안녕하세요! 제가 추석 연휴동안 SOLO POTENDAY 프로그램을 완주했는데요!약 10일동안 AI와 개발을 하면서 이런저런 어려움도 겪으면서 많이 얻어갔던 시간이었습니다. 참여자분들중에 개발자가 아닌 선생님, 디자이너, 기획자분들도 많더라구요AI를 통한 개발을 타직군분들이 관심이 많구나 생각이 들었고, 그 분들이 전공자 혹은 개발자가 아님에도 노력하여 결과물을 만들어내시는걸보고 정말 멋지다고 생각했습니다. 새로운 도전은 어렵기마련이니까요!그래서 이번 후기에 적는 AI와 함께 했던 개발 과정은 개발자뿐만이 아니라 비개발자분들도 누구나 보고 이런식으로 개발하는구나~ 하고 이해하기 쉽도록 적으려고합니다! (오프라인 모임에서 비개발직군분들의 어려움을 들어서 그런거 완전 맞음)그럼 이제 지난 2주동안의 여정으로..
[iOS] 백그라운드에서 Bluetooth 태그 스캔 기능을 구현하라구요? - 1탄 안녕하세요!오늘은 제가 기능 구현하면서 공부하고 부딪혔던 부분에대해서 글을 적어보려고 합니다!ㅎㅎㅎ백그라운드..... 힘들었어요... 기기마다 스캔 빈도수가 꽤나 달라서..ㅜㅜ자! 그럼 시작해봅시다!회사에서 아래와 같은 요구 사항을 받았었는데요!"앱이 백그라운드에 있어도 Bluetooth 태그를 계속 찾을 수 있게 만들어주세요!" 처음에는 어렵지 않을꺼라고 예상했지만........iOS에서 백그라운드 Bluetooth 스캔은 Apple의 까다로운 백그라운드 정책 때문에 다소 복잡했어요,,ㅜㅜ 제일 컸던 부분은 iOS 13부터 시스템이 "내가 알아서 판단해줄게"라며 개입하기 시작해서메모리나 배터리 상태, 앱 접속 빈도수, 권한 이슈 등 다양한 상황으로 인해 기기마다 스캔 기능이 실행되는게 천차 만별이었는데..
[AWS] 인프라 구조 파악하기: 서버 2개가 돌아가고 있다면? 요즘 백엔드 업무도 같이 하고있는데요!! (인수인계가.. 없었음.. 맨땅에 해딩 중..)AWS 인프라 구조 파악을 하다가 서버 2개가 동시에 돌아가고 있더라구요이게 로드밸런싱인지, 아니면 웹서버/앱서버 분리 구조인지, 혹은 백업 서버인지 모르겠어서,실제 AWS 환경에서 이를 구분하는 방법을 단계별로 알아보겠습니다메인 서버가 2개?!CloudWatch 모니터링을 보니 메인 서버 두개가 모두 활발하게 트래픽을 처리하고 있었습니다. 이때 가능한 시나리오는 다음과 같습니다.1. 로드밸런싱두 서버가 동일한 역할을 하며 트래픽을 나눠서 처리성능 향상과 가용성 확보가 목적2. 웹서버 + 앱서버 분리웹서버: 정적 파일 서빙, 프록시 역할앱서버: 비즈니스 로직 처리, DB 연동3. 백업 서버 (Standby)평상시에는 ..
[GitHub] 실수 없이 되돌리기: Git reset 옵션 완전 정복 안녕하세요!이번에는 Git의 Reset 명령어에대해 알아보도록하겠습니다!들어가며..Git을 쓰다 보면 reset, revert, checkout, restore처럼 비슷한 명령어들이 많아 헷갈릴 때가 있습니다.특히 reset은 Git의 히스토리를 직접 조작하는 명령어이기 때문에, 잘못 사용하면 복구하기 어려운 상황이 생길 수 있습니다.이 글에서는 먼저 Git reset 옵션의 작동 원리를 개념적으로 설명한 뒤, 각각의 옵션(--soft, --mixed, --hard)을 예시와 함께 살펴보고, 마지막에는 실제 상황에서 어떤 옵션을 선택해야 할지 정리해보겠습니다. 각 박스는 커밋을 나타내며, hello.txt 파일의 변경 이력을 V1 → V2 → V3 순서로 보여줍니다.커밋 해시(a1b2c3d 등)와 각 버..
[GitHub]Git 핵심 개념 한번에 이해하기: 3대 영역 + HEAD와 Branch 안녕하세요!이번 글에서는 Git의 기초기초왕기초인!! Git의 3대 핵심 영역과 HEAD/ Branch에대해 알아보겠습니다!들어가며..막상 Git 명령어들을 습관처럼 사용하다 보니까, 제가 쓰는 명령어들이 실제로 어떤 흐름으로 작동하는지 깊게 생각해본 적은 많지 않았던 것 같아요.사실 git reset, git checkout, git revert 같은 명령어들도 사용은 하는데, 어떤 게 뭘 되돌리는 건지 헷갈릴 때 많잖아요??이럴 때 Git의 핵심 구조를 제대로 알고 있으면 명령어가 다르게 작동하는 이유도 자연스럽게 이해되더라구요.즉, Git이 내부적으로 어떤 영역들을 기준으로 동작하는지, 지금 내가 Git 안에서 어느 위치에서 작업하고 있는지를 이해하는게 중요하다고 생각했습니다!그래서 이번 기회에 G..
[Concurrency] 병렬 처리 제대로 쓰기: async let vs TaskGroup 안녕하세요!이전 글들( [Concurrency] Task 톺아보기, [Concurrency] 천천히 알아보는 Task.detached(), 언제 어떻게 써야 할까? )에서 Swift Concurrency의 기초와 비구조화 Task에 대해 정리했는데요. 이번 글에서는 그 연장선으로, 구조화된 병렬 작업을 Swift에서 어떻게 더 유연하고 효율적으로 처리할 수 있는지 함께 살펴보려 해요!async let vs TaskGroup: 어떤 걸 언제 써야 할까?async let과 TaskGroup은 모두 구조화된 병렬 처리를 위한 도구지만, 사용하는 방식과 적절한 상황은 꽤 다릅니다.예를 들어, 이미지 여러 장을 한꺼번에 다운로드할 때는 async let이 직관적이고 간단하지만,반복문 안에서 비동기 작업을 여러 개..
글또 마지막 글을 제출하며... 24년 10월, 저에게는 크나큰 도전이었던 글또와 함께한 6개월이라는 시간이 빠르게 지나갔고, 벌써 글또 10기의 마지막 글을 제출합니다.언제나 마지막이라고 생각하면 마음이 싱숭생숭해지고 아쉬움이 남는데요. 하지만 끝이 아닌 시작이라고 생각해보려 합니다!글또에서 얻은 습관들과 인연을 유지하는 것은 제가 하기 나름이기에 아쉬움은 잠시 뒤편에 두고 더 나은 삶과 관계를 이어가고 싶어요ㅎㅎ주저리주저리 그만하고, 그럼 회고를 시작해볼까요!!글또 10기 다짐, 목표 얼마나 이뤘어?글또 10기 시작을 다짐글로 열었으니, 초기 목표를 얼마나 달성했는지부터 확인해봐야겠죠?글을 가끔 열어보긴 했는데, 막상 목표 달성 여부를 정확히 판별하려니 조금 떨리네요...아래는 글또 다짐글에서 이번 활동 목표만 떼서 가져와 봤습니다..
[Concurrency] 천천히 알아보는 Task.detached(), 언제 어떻게 써야 할까? 안녕하세요!저번에 Task에 대한 글에서, detached는 따로 자세히 다뤄보자고 했었죠?이번 글에서는 detached에 대해 깊이 파헤쳐 보려고 합니다! 얼마 전에 앨런 Swift Concurrency for Swift 6 (Part-1) 강의를 듣다가, 이런 설명을 들었어요. " 내부Task에서 부모Task와 다른 우선순위를 적용하려면 detached를 사용해야 한다." "어? 그럼 내부 Task에서는 우선순위를 따로 설정하는건 적용이 안 되는 건가????" 하는 의문이 들었습니다.그래서 직접 실험해보았는데요! 아래처럼 내부 Task에도 우선순위를 설정하고 실행해보았어요.let task = Task(priority: .high) { print("부모..