question,image,options 간의 간격이 너무 커서 가독성이 떨어지는 문제및 각 부분의 충돌 현상 해결

문제의 원인은  아래와 같은 세 제약 조건을 수학적으로 동시에 만족할게 할수가 없었기 때문입니다.   1.이미지뷰까지 20포인트 간격   2.질문 레이블에서 옵션 스택뷰까지 10포인트 간격   3.이미지뷰에서 옵션 스택뷰까지 20포인트 간격 해결방법은: 다음과 같은 제약 조건 변수들을 선언합니다    private var questionToOptionsConstraint: NSLayoutConstraint!  private var questionToImageConstraint: NSLayoutConstraint!  private var imageToOptionsConstraint: NSLayoutConstraint! setupConstraints()  메서드에서 이 제약 조건들을 초기화하되, 아직 활성화하지 않습니다. questionToOptionsConstraint = optionsStackView.topAnchor.constraint(equalTo: questionLabel.bottomAnchor, constant: 10) questionToImageConstraint = imageView.topAnchor.constraint(equalTo: questionLabel.bottomAnchor, constant: 20) imageToOptionsConstraint = optionsStackView.topAnchor.constraint(equalTo: imageView.bottomAnchor, constant: 20) displayQuestion()  메서드에서 이미지 유무에 따라 적절한 제약 조건만 활성화합니다 // 먼저 모든 잠재적 충돌 제약 조건을 비활성화 NSLayoutConstraint.deactivate([     questionToOptionsConstraint,     questionToImageCo...

SQLite를 이용할때 문제의 진행을 각 난이도별로 공유하는 문제 해결법

레벨과 퀴즈 그룹을 기본 키로 설정하여 데이터 충돌 방지 레벨과 퀴즈 그룹을 기본 키로 설정하여 데이터 충돌 방지 문제점 기존에는 레벨과 퀴즈 그룹이 정확히 구별되지 않아 새로운 진행도를 저장할 때 기존 데이터가 덮어씌워지는 문제가 있었습니다. 해결 방법 progress 테이블의 기본 키를 level 과 quizGroup 의 조합으로 설정하여, 레벨별로 진행도를 독립적으로 관리하도록 변경하였습니다. CREATE TABLE IF NOT EXISTS progress ( level TEXT, quizGroup TEXT, lastQuestionIndex INTEGER, PRIMARY KEY (level, quizGroup) ); 데이터 저장 방식 개선 업데이트 시 특정 레벨과 그룹에 대해서만 진행도 변경 saveProgress 메서드에서 WHERE 절에 level 과 quizGroup 을 포함하여 특정 레벨과 그룹에 대해서만 진행도를 변경하도록 설정하였습니다. let updateQuery = "UPDATE progress SET lastQuestionIndex = ? WHERE level = ? AND quizGroup = ?;" 진행도 조회 시 정확한 필터링 적용 let selectQuery = "SELECT lastQuestionIndex FROM progress WHERE level = ? AND quizGroup = ?;" 변경된 데이터가 없으면 새로운 데이터를 삽입하는 UPSERT 패턴 사용 if sqlite3_changes(db) == 0 { insertProgress(level: level, quizGroup: quizGroup, index: index...

왜? iOS로 일본어 능력 평가 앱을 만들려고 하는가?

이미지
iOS 프로젝트 나는 오타쿠고 일본어를 할 줄 안다. 그리고 iOS 국비 지원 교육을 받아서 iOS 개발자를 지망하고 있다. 그럴려면 모름지기 iOS 프로젝트가 필요하다고 생각했다. iOS 프로젝트를 할 때 사람들이 흔히 하는 계산기, 메모장, 그 외 틀에 박힌 프로젝트는 하기가 싫었다. 적어도 내가 흥미 있는 것 그리고 내가 사용할 것 같은 프로젝트를 만들어보고 싶었다. 일본어에 관심이 있고 일본어 능력 평가 시험을 쳐보고 싶다는 생각이 있었다. 그럼 그에 맞는 앱을 만들어서 나부터 사용할 앱을 만들어보자는 생각이 들었다.

나이가 들어서 비전공자로서 개발자 취준에 대하여

불과 몇년전만 해도 개발자의 취직이 쉽다고 하던 시절이 있었다. 하지만 현재 지금의 상황은 나이든 비전공자가 개발자로 취직하기 쉬운 상황 아니게 되어버렸다.나라는 인간의 전반적 인생을 돌아보면 우유부단함과 타이밍을 잡지 못한다는 것으로 귀결된다.이도저도 아니고 그때 생각하면 좋은 찬스와 기회를 만들수 있었을텐데 라는 생각으로 가득한 삶을 살아오고 있다.앞으로 나는 어떻게 될까? 프로젝트 하고 이력서를 쓰고 코딩테스트 준비를 하는 일상을 보내고 있는 지금 내가 진짜 취업이 될까? 문득 생각하게 된다.이런 생각을 한들 결론이 나지 않는다는 것 알고 있지 만 생각을 하지 않을수가 없다.

Xcode에서 Info.plist 파일을 GitHub에 무시하는 방법

Xcode에서 Info.plist 파일을 GitHub에 무시하는 방법 Xcode에서 Info.plist 파일을 GitHub에 무시하는 방법 Xcode 프로젝트를 GitHub에 올릴 때 Info.plist 파일을 무시하도록 설정하는 방법을 설명합니다. 1. .gitignore 파일 수정 Git이 Info.plist 파일을 무시하도록 설정해야 합니다. ① .gitignore 파일 확인 ls -a 파일이 없으면 생성: touch .gitignore ② .gitignore 파일 수정 # Xcode Info.plist 파일 무시 **/Info.plist 2. 이미 Git에 올라간 Info.plist 삭제 기존에 올라간 파일은 직접 제거해야 합니다. ① Git에서 Info.plist 추적 제거 git rm --cached path/to/Info.plist 예시: git rm --cached MyApp/Info.plist ② 변경 사항 커밋 git commit -m "Ignore Info.plist" git push origin main 3. Xcode에서 Info.plist 관리 Git에서 무시하면 다른 개발자가 프로젝트를 클론할 때 Info.plist 가 빠집니다. 이를 방지하려면 템플릿 파일을 제공합니다. ① Info.plist.template 파일 생성 Info.plist 와 동일한 내용을 가진 Info.plist.template 을 만들어 Git에 올립니다. ② .gitignore 에 템플릿 파일 제외 !**/Info.plist.template ③ 필요 시 Info.plist 생...

GitHub에 올라간 Info.plist 파일 숨기는 방법

GitHub에 올라간 Info.plist 파일 숨기는 방법 GitHub에 올라간 Info.plist 파일 숨기는 방법 1. 현재 Info.plist가 Git에서 추적되고 있는지 확인하기 우선, 터미널에서 프로젝트 폴더로 이동한 뒤, 아래 명령어를 실행하세요. git ls-files | grep Info.plist 이 명령어를 실행했을 때 Info.plist 파일의 경로가 출력된다면, 해당 파일이 현재 Git에서 추적되고 있다는 의미입니다. 예제 출력: ios/ExampleApp/Info.plist 이제 이 파일을 Git 추적에서 제거하고, 앞으로 추적되지 않도록 설정하겠습니다. 2. .gitignore 파일에 Info.plist 추가하기 .gitignore 파일을 수정하여 Info.plist가 Git에 추가되지 않도록 설정합니다. .gitignore 파일 수정 방법 프로젝트 루트 디렉터리에 .gitignore 파일이 있는지 확인하세요. 없다면 새로 생성합니다. (터미널에서 touch .gitignore 실행) .gitignore 파일을 열고 다음 줄을 추가합니다. # Ignore Info.plist ios/ExampleApp/Info.plist ⚠ 중요: ios/ExampleApp/Info.plist 부분은 실제 프로젝트 내 Info.plist 파일의 경로에 맞게 수정하세요. ...

Git 원격 저장소 추가 및 관리

Git 원격 저장소 추가 및 관리 Git 원격 저장소 추가 및 관리 🔹 1. 원격 저장소 추가하기 원격 저장소를 추가하려면 다음 명령어를 사용하세요: git remote add <원격이름> <원격URL> 예제: git remote add origin https://github.com/user/repo.git 🔹 2. 추가된 원격 저장소 확인 현재 추가된 원격 저장소 목록을 확인하려면: git remote -v 🔹 3. 원격 저장소 변경 (수정) 이미 추가된 원격 저장소의 URL을 변경하려면: git remote set-url origin <새로운URL> 예제: git remote set-url origin https://github.com/newuser/newrepo.git 🔹 4. 원격 저장소 삭제 원격 저장소를 삭제하려면: git remote remove <원격이름> 예제: git remote remove origin 이제 원격 저장소를 추가하고 관리할 수 있습니다! 🚀