본문 바로가기

전체 글94

프로젝트 키보드 - 1 | 개발자 지망생의 커스텀 스플릿 키보드 제작 입문기 안녕하세요! electrohyun입니다. 오늘 글은 대학교 2학년의 겨울방학을 맞아 “재밌는 거 하나쯤 해보고 싶은데 뭐 없나…?” 하고 고민하다가, 아주 오래전부터 꿈처럼 생각만 해오던 키보드 만들기 프로젝트를 시작하게 되어 그 기록의 첫 글을 써보려고 합니다. 프로젝트 기간은 현재로부터 약 1~2개월 뒤(26년도 개강 전까지)를 목표로 진행할 계획입니다. 오늘은 일단 왜 커스텀 키보드를 만들고 싶은지, 어떤 순서로 작업을 진행할지 작성해보겠습니다. 저는 예전부터 갖고 싶은 게 정말 많았습니다. 특히 좋은 장비를 갖고 싶다는 생각이 강했고, 중학생 때는 맥북이나 아이패드를 갖고 싶었지만 아무래도 너무 큰 돈이 필요했기 때문에 구매하지 못했죠. 그래서 작은 것부터 시작해봤습니다. 집에 있는.. 2025. 12. 6.
[AWS Certified Cloud Practitioner] 합격 후기와 정보(전공자) 4줄 요약4일간 공부했습니다. (개념 2일(5시간) + 덤프 1일(6시간) + 시험 당일 정리)덤프(기출)랑 거의 비슷하게 출제되며, 번역 문제로 인한 두려움이나 걱정은 거의 하지 않아도 괜찮습니다!Stephane Maarek님의 Udemy 강의를 통해 개념을 학습했습니다.https://kananinirav.com/practice-exam/exams.html 이 사이트에서 덤프 1번부터 12번까지의 문제만 돌려서 풀었습니다!개요 안녕하세요! electrohyun입니다. 저는 학교에서 웹 개발 동아리인 [모던 애자일]에서 10기 활동을 하며 프론트엔드 개발을 담당하고 있는데요, 배포나 서버 쪽 이야기가 나올 때마다 "EC2? S3? 뭐였지..." 하면서 다시 인터넷에서 찾아보고는 했습니다. 개발자로서 클.. 2025. 11. 30.
iOS 프로그래밍 13주차 BMI판정 앱(4) 저번에 WebKit 프레임워크 없었던 문제를 해결해보자. + 버튼 누르기 웹킷 프레임워크 추가하기(도움 주신 한성현 교수님께 감사합니다.) URL 구조체는 이곳 저곳에서 굉장히 많이 사용된다.(참고: https://developer.apple.com/documentation/foundation/url) 외부 앱 여는 부분은 기말 프로젝트 때 활용해봐도 재밌을 것 같다. -> URL형이 아니고, 왜 Optional URL형인가?-> Failable Initializer를 거쳤기 때문이다. viewDidLoad()는 화면의 뷰가 메모리에 처음 로드된 직후 실행 회전 시 레이아웃 깨지는 문제 해결하기 동영상 플레이어 리팩토링하기(후행 클로저)present(playerViewCon.. 2025. 11. 25.
iOS 프로그래밍 12주차 BMI판정 앱(3) identity inspector를 사용하는 이유- User Defined Runtime Attributes를 정의할 때 쓴다- 한가지 더(뒤에 나옴) = 스토리보드와 새로운 스위프트 파일을 연결할때 쓴다 요소에 둥근 테두리를 주는법- User Defined Runtime Attributes 정의하기- clipsToBounds를 true + cornerRadius 값주기 - 탭바 컨트롤러 만들기- 뷰 컨트롤러 클릭 -> 상단 Embed In -> 탭바 컨트롤러 클릭 - Cmd + Shift + l 눌러서 뷰 컨트롤러 추가 + 파란 별 눌러서 이름 지정- 실제 파일도 Cocoa Touch Class로 만들어, UIViewController 상속받게 만들기 - class 연결해주기-.. 2025. 11. 19.
iOS 프로그래밍 11주차 BMI 앱 만들기import UIKitclass ViewController: UIViewController { // MARK: - IBOutlets @IBOutlet weak var heightTextField: UITextField! @IBOutlet weak var weightTextField: UITextField! @IBOutlet weak var resultLabel: UILabel! @IBOutlet weak var adviceLabel: UILabel! // MARK: - Lifecycle override func viewDidLoad() { super.viewDidLoad() setupUI() } .. 2025. 11. 11.
iOS 프로그래밍 10주차 BMI 판정 앱 만들기 - Finder에서 왼쪽 사이드바로 폴더를 드래그 하면 메뉴가 추가된다 - 네비게이터 여닫는 버튼 - 아웃라인 컨트롤러 - Attribute Inspector - 뭔가 제대로 작동 안하면 Connections Inspector 보기(시험) - 엔트리 포인트(화살표) 가 사라졌다면 런치스크린에서 해당 항목을 체크해주자 ==== 업다운 앱 만들기 - 초기설정 레이블과 두 버튼을 Ctrl 버튼으로 클릭, 에디터까지 이어 각각 연결하기.IB = Interface BuilderIBLable, IBAction - 간단한 앱 ==== - Do It 소스(3장)- 버튼을 Outlet + Action으로 구성! 내부 텍스트의 변화.- 내부 소스 (출처 Post 하단 기재) //// .. 2025. 11. 4.
iOS 프로그래밍 9주차 XCode 사용법과 간단한 앱 개발 (주의) Bundle Identifier는 유일해야한다Interface는 아직 초보니까 SwiftUI 대신 StoryBoard기기 성능에 따라 고를 수 있는 최소 기기 성능도 다르다.어르신들을 위한 앱을 개발한다면 버전을 다소 낮추는 것 또한 고려하는게 좋다 Portrait = 초상화(세로 모드)Landscape = 풍경화(가로 모드, Left/Right는 홈버튼 방향) Cmd+Shift+L로 레이블 배치하고, 캔버스의 Bounds Rectangles 활성화시켜 배치 용이하도록 설정 바꾸기. 별도의 레이아웃을 설정해주지 않았기에 핸드폰을 돌리면 다르게 배치되는 모습 1. 강제 언래핑2. 옵셔널 바인딩3. nill coalescing 연산자 tip) alt키.. 2025. 10. 28.
iOS 프로그래밍 7주차 클래스는 구조체에 없는 추가적인 기능이 있다-> 상속! - 일반적으로 프로퍼티를 지칭하면 stored property를 지칭한다. - 스토어드 프로퍼티는 반드시 초기값이 있어야 하는데, 3가지 방법 중 3번이 가장 일반적. - init() {}은 주석 붙여도 붙이지 않아도 괜찮고, 애초에 자동으로 만들어진다.-> 이것 때문에 10번째 줄 맨 뒤에 () 붙여주는 것임 - 12번째 줄에서 어떻게 멤버 변수에 접근하지?-> 약한 캡슐화 - P: Property- M: Method - 클래스 메서드(타입 메서드) 혹은 Static 메서드는 객체가 아닌 클래스 차원에서 접근해야 한다. (신기하다)+ class 키워드로 만든 클래스 메서드는 자식 클래스에서 override 가능함 - designated i.. 2025. 10. 14.
iOS 프로그래밍 5주차 함수 21급 객체(first class object) 클로저(closure)고차 함수(higher-order function)클래스 기초복습- 콜론 주의하기 - 자바스크립트 스프레드 연산자 같아서 신기함 - 일급 객체 func up(num: Int) -> Int { return num + 1}func down(num: Int) -> Int { return num - 1}let toUp = upprint(up(num:10))print(toUp(10))let toDown = downfunc upDown(Fun: (Int) -> Int, value: Int) { let result = Fun(value) print("결과= \(result)")}print(type(of: upDo.. 2025. 9. 30.