본문 바로가기
300x250

분류 전체보기241

README 꾸미기 Github 프로필 화면을 꾸며보자. README 생성1. GitHub에서 저장소 생성화면까지 가자2. repository name을 내 닉네임과 똑같이3. Public 체크4. Add a README file 체크5. Create repository 버튼 클릭🐹 이렇게 하면 기존과 같이 저장소가 생성이 되고 readme 내용이 프로필 메인에 보이게 된다 6. 생성한 저장소를 로컬로 clone GitHub Actionreadme 꾸미기에 앞서 알아야할 것!GitHub Action에 대해 알면 진행하는데에 시간을 아낄 수 있을 거라 생각된다. 아래 페이지의 내용만 보아도 이렇게 흘러가는구나를 알 수 있다.https://docs.github.com/en/actions/about-github-actions/.. 2025. 1. 10.
애자일 기존의 폭포수 방식은 프로젝트 기획 단계에서 기간을 산정하여 순차적으로 진행되어 프로젝트가 끝나기 전까지 결과물 확인이 불가능하다. 따라서 기획가 맞지 않은 개발이 진행될 수도 있다. 반면, 애자일은 전체적인 기간 산정이 중요하지 않다. 일정한 주기의 루틴을 가지고 빠르게 제품을 출시하여 고객의 요구사항, 변화된 환경에 맞게 요구를 더하고 수정해나가는 탄력적인 방법론이다. 구성원PO(Product Owner)기능적으로 회사의 이익을 가져올 사업부 같은 느낌! (MD나 마케터 같은 역할)기능에 대한 방향성을 담당의사결정자PM(Project Manager)프로젝트 매니저실제로 결과물을 만드는 사람들을 관리스크럼 팀원들과 소통하지 않고 SO와 소통Scrum실제로 결과물을 만드는, 프로젝트를 담당하는 하나의 독.. 2024. 12. 23.
F-lab) iOS 1개월 후기 F-Lab을 시작한 이유 더 좋은 개발자가 되고 싶었다.벌써 개발을 시작한지도 4년이 넘었다. 그렇지만 연차에 비해 내 실력이 부족하다 느꼈다. 공부하는 방식이 잘못됐는지, 아니면, 코드의 품질이 안 좋은 것인지... 내가 부족한 것이 무엇이고 지금 필요한 것이 무엇인지 알아야 했다. 예전과 달리 iOS도 다양한 부트캠프들이 생겨났지만 모두 내가 원하는 방향은 아니었다. 딱 나만의 문제점을 빠르게 파악하고 해결해 나가고 싶었고 직접 프로젝트를 진행하면서 코드 리뷰를 받고 싶었고, 이 과정에서 내가 알지 못했던 지식들을 얻고 싶었다. 그리고 이 모든 과정은 1:1 이었으면 했다.F-Lab이 이 모든 것에 부합했지만 비용이 너무 비쌌다...그래서 꽤 오랫동안 고민 했고 여러 고민 끝에 하기로 마음 먹었다.내.. 2024. 12. 6.
해시 간단히 정리해 봅니다. ↘ 해시 Hash?임의의 길이의 데이터를 고정된 길이의 데이터로 만들어 주는 자료구조로 key와 value가 쌍을 이루는 구조이다.swift에서는 대표적으로 Dictionary가 있다. Dictionary의 key를 이용해서 원하는 value를 한번에 조회 할 수 있다. 이때 key를 이용하여 한번에 조회 할 수 있게 해주는 것이 바로 해시이다.Dictionary 형태를 보면 key는 Hashable한 타입만을 포함시킬수 있는데, 내부에서 이 key를 배열처럼 index 형태로 변환하여 값에 바로 접근 할 수 있게 해준다. 이 변환 작업을 해싱이라고 한다. 해싱 Hashing?Dictionary의 key에 접근하여 value를 가져오는데에는 O(1)의 시간복잡도를 가진다. 이렇게 .. 2024. 11. 13.
프로그래머스: 해시 - 완주하지 못한 선수 https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제도 swift를 지원하지 않지만 풀어봄 풀이주어진 참가자 배열과 완주자 배열을 비교해서 완주하지 못한 한명을 반환하면 되는 문제처음엔 단순히 배열끼리 for, if 문으로 비교하면 된다고 생각했는데해시 문제 이므로 해시를 사용해서 풀 수 있는 방법을 고민해보았다.참가자를 키로 두고 모두 false 값으로 설정한 딕셔너리를 만들어서 사용하는 것부터 생각을 해봤는데 도저히 동명이인일 경우 처리가 되지 않았.. 2024. 11. 12.
프로그래머스: 해시 - 포켓몬 https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 지원되는 언어에 Swift가 없긴 하지만 풀어보고 싶어서 풀어봄 GPT에게 테스트 케이스를 더 만들어 달라고 했고Set을 이용하여 간단하게 풀어봄 GPT의 테스트 케이스 -># 테스트 케이스test_cases = [ # Case 1: 기본 예제 (폰켓몬이 4개, 서로 다른 종류 2개) ([3, 1, 2, 3], 2), # 최대 선택 가능 폰켓몬 종류 수: 2 # Case 2: 모든 폰켓몬이 같은 종.. 2024. 11. 8.
동시성 프로그래밍 (5) - GCD 사용 시 주의해야할 사항 GCD를 사용할 때에 주의 할 부분과 응용방법! 1.  반드시 메인큐에서 처리해야하는 작업우리는 화면을 그리고 그 화면에 필요한 데이터를 가져오고 가공하는 여러 작업들을 하게 된다.그리고 별도로 스레드로 작업을 분산하지 않는다면 보통은 대부분의 작업이 메인스레드에서 처리가 되는데 메인 스레드는 앱의 UI를 관리하고 사용자와의 상호 작용을 처리하는 매우 중요한 스레드이다. 따라서 UI관련 작업이나 애니메이션 그리고 사용자가 텍스트를 입력할 때 처리해야하는 작업 등은 반드시 메인스레드에서 처리되도록 해야한다.왜 메인 스레드에서 UI 작업을 해야 할까?1) UI 일관성 유지: 여러 스레드에서 동시에 UI를 변경하면 예기치 못한 결과가 발생할 수 있다. 메인 스레드에서만 UI를 변경함으로써 UI 상태를 일관되게.. 2024. 8. 21.
동시성 프로그래밍 (4) - GCD의 종류와 특성 1) main메인 이라는 이름 답게 단 한개가 존재하는 메인스레드를 이용한다serial로 동작하며 보통은 별도 작업을 해주지 않으면 메인스레드에서 처리가 된다print("task")이렇게 단순한 출력 코드 조차도 DispatchQueue.main.sync { print("task")}내부적으론 위와 같이 동작하고 있는 것! 2) globalconcurrent로 동작하며 총 6가지의 옵션을 지정하여 우선순위를 결정할 수 있다. 중요도가 높은 종류의 큐 사용시 iOS가 알아서 작업을 여러 스레드로 배치하고 배터리를 더 집중해서 사용하도록 한다. 만약 낮은 중요도의 큐 안에 더 높은 중요도의 큐 작업을 보내면 작업 수준은 자동으로 더 높은 중요도의 수준으로 변경된다.let queue = DispatchQue.. 2024. 8. 12.
동시성 프로그래밍 (3) - GCD/Operation에 앞서 Synchronous(동기) vs. Asynchonous(비동기)thread1 번에 쌓이는 task들을 대기열(큐)에 보내고 동기 또는 비동기로 처리할지 정하게 되고대기열에 보내진 task들은 자동으로 다른 스레드들로 분산되어 동기 또는 비동기로 처리된다. 동기로 처리 하게 되면 하나의 task가 끝나고 다음 task를 실행하여 순차적으로 큐에 있는 작업들을 처리한다.비동기로 처리 하게 되면 여러 task가 동시에 큐에 있는 작업들을 처리한다.  Serial(직렬) VS Concurrency(동시)이러한 큐에는 두 가지의 특성이 있는데 바로 직렬과 동시 직렬?스레드 하나에 작업을 보내고 순서가 중요한 작업을 처리할 때 사용된다. 동시?여러 스레드를 사용하여 작업을 처리하며 몇 개의 스레드로 분산할지는 시.. 2024. 8. 9.
300x250