Swift wholeNumberValue 사용 시 숫자가 아닌 문자 포함 이슈 해결문제 상황Swift의 Character.wholeNumberValue를 사용하면 숫자가 아닌 문자가 포함된 입력도 변환되는 문제 발생wholeNumberValue는 Int? 타입을 반환하면서 문자가 포함된 입력에서도 숫자만 걸러지는 문제가 있음.예를 들어, input = "1ㅁ23"인 경우 **[1, 2, 3]**으로 변환되어 입력이 허용됨.사용자 의도와 다르게 잘못된 입력을 허용하는 보안 취약점 가능성이 있음.문제 코드func inputAnswer() -> [Int] { while true { print("숫자를 입력하세요.") if let input = readLine() {..
구현 기능Lv1[✅] 1에서 9까지의 서로 다른 임의의 수 3개를 정하고 맞추는 게임입니다[✅] 정답은 랜덤으로 만듭니다.(1에서 9까지의 서로 다른 임의의 수 3자리)Lv2[✅] 정답을 맞추기 위해 3자리수를 입력하고 힌트를 받습니다[✅] 힌트는 야구용어인 볼과 스트라이크입니다.[✅] 같은 자리에 같은 숫자가 있는 경우 스트라이크, 다른 자리에 숫자가 있는 경우 볼입니다ex) 정답 : 456 인 경우435를 입력한 경우 → 1스트라이크 1볼357를 입력한 경우 → 1스트라이크678를 입력한 경우 → 1볼123를 입력한 경우 → Nothing만약 올바르지 않은 입력값에 대해서는 오류 문구를 보여주세요3자리 숫자가 정답과 같은 경우 게임이 종료됩니다Lv3[✅] 정답이 되는 숫자를 0에서 9까지의 서로 다른..
Keep팀원들과 함께 프로젝트를 진행해본 경험이 너무 인상적이였고, 좋은 분들과 한팀이 되어서 좋았던 기억 때문에 지금 팀이 유지되었으면 좋겠다는 생각을 했습니다.서로 질문하며 지식을 쌓아가고 모든 팀원이 열정을 가지고 프로젝트에 임했던 태도가 인상깊었습니다.끈기를 가지고 프로젝트를 완성시키려 하는 마음이 중요한 것 같습니다.문제가 생겨도 빠르게 대처하는 모습이 있었습니다.Problem문제점: 프로젝트 초반, 컨벤션이나 디자인 등 역할 분담을 확실하게 정하지 않았습니다.해결방안: 프로젝트를 진행하면서 초반보다 더 적극적으로 소통하며 재설정했고, 성공적으로 프로젝트를 완수할 수 있었습니다.Try시간을 정해 피드백 및 코드리뷰 하기프로젝트 초반 설계 집중하기다양한 기술 스택 및 여러 CS 지식등을 경험Git..
내배캠 1주 차 이전에 했던 사전 캠프의 팀이 아니라 5명의 새로운 팀과 함께 첫 시작을 했다.첫 번째 팀 프로젝트는 "팀 소개 앱 만들기"였다.처음 프로젝트 명을 봤을 때 직관적으로 팀 소개라는 것이 다른 사람들이 해당 앱을 봤을 때 우리 팀이 어떤 팀인지, 그 팀에는 어떠한 사람들이 있는지 알 수 있었으면 했다. 회의 결과 메인 화면은 다 같이 회의해서 만들고 개인 소개 페이지는 각자의 개성을 살려서 만들기로 정했다.아래는 오늘 회의하면서 정한 것 들 이다. 팀 소개 앱 Figma 브레인 스토밍 유즈케이스 GitHubLink GitHubRules 첫 9 to 9이라 많이 피곤하고 정신 없었지만, 같은 목표를 향해 나아가는 사람들과 이야기를 하고 프로젝트 이야기를 하다보니 동기 부여가 많이 되는 것 같..
1. 비동기 프로그래밍비동기 프로그래밍작업을 동시에 실행하거나, 완료 여부를 기다리지 않고 다음 작업을 수행할 수 있는 프로그래밍 방식iOS에서는 주로 **GCD(Grand Central Dispatch)**와 비동기 메서드를 사용동기 vs 비동기동기(Synchronous): 작업이 완료될 때까지 대기비동기(Asynchronous): 작업 완료를 기다리지 않고 바로 다음 작업 실행GCD의 주요 큐Main Queue: UI 작업을 처리Global Queue: 백그라운드 작업 처리Custom Queue: 사용자 정의 작업 큐🛠 비동기 프로그래밍 예제DispatchQueue.global().async { print("비동기 작업 실행") DispatchQueue.main.async { ..
1. 클로저(Closures)클로저란?코드에서 독립적으로 전달 및 사용할 수 있는 기능을 가진 코드 블록입니다.변수나 상수에 저장 가능하며, 함수의 인자로 전달할 수 있습니다.클로저 문법클로저는 다음과 같은 형태로 작성됩니다.{ (매개변수) -> 반환타입 in 실행 코드}캡처(Capture)클로저는 외부 변수나 상수의 값을 캡처하여 저장합니다.var number = 10let closure = { number += 5 }closure()print(number) // 15🛠 클로저 기본 예제// 기본 클로저let greet = { (name: String) -> String in return "Hello, \\(name)!"}print(greet("Alice")) // "Hello, Alic..