-
스파르타코딩클럽 내일배움캠프 실제 수강 후 취업 후기 / 취업 취뽀 후기
안녕하세요!! 평범하디 평범한 삶을 살던 제가 , 수동적인 삶을 보내주고 능동적으로 살기위해 공부를 시작했던 이야기를 해보려고해요. 수강 이전의 나의 삶 ) 그저그냥 공부는 해야된다라는 말만듣고 , 흥미도 관심도없던 기계과로 대학을 진학했던 저는 전공을 공부하면서 이 삶을 지속하는것에대한 자신감이 점점 떨어졌어요. ( 솔직히 기계 재미없잖아요 ㅎㅎ.. ) "기계를 만지기위해서 기계처럼 감정마저도 동결시킨채 사는게 맞을까?" 하는 의문이 제 머릿속에서 많이 퍼져 갈때 쯤 , 코딩에 대해서 알게되었죠. 처음엔 큰 흥미가 없었어요 . 그저 어지러운 글자들의 나열이구나 , 이렇게 머리가 아픈작업을 하고계신 누군가가 있구나 하면서. ( 나중엔 내가 머리아파짐 ) 개발자를 꿈꾸게 된 계기 ) 그래서 그냥 가볍게 발..
-
23.11.16 딕셔너리(Dictionary), 집합(Set), 배열(Array)의 개념
딕셔너리 특징: 키-값 쌍의 비순서형 컬렉션 각 키는 고유해야 하며, 값은 중복될 수 있음 순서가 없기 때문에 인덱스로 요소에 접근할 수 없음 var person = ["name": "John", "age": 25, "city": "New York"] person["gender"] = "Male" let cityName = person["city"] // Optional("New York") 배열 특징: 순서가 있는 데이터의 컬렉션 각 요소는 고유한 인덱스를 가지며, 인덱스는 0부터 시작함 동일한 데이터 타입의 요소를 저장 크기가 동적으로 조절 가능하며, 요소를 추가하거나 제거할 수 있음 var numbers = [1, 2, 3, 4, 5] numbers.append(6) // [1, 2, 3, 4, 5..
-
23.11.15 @Main의 개념 / iOS 앱 내에서 메모리 관리를 최적화하기 위한 방법 / 고차함수(map, filter, reduce)의 개념
@Main 어트리뷰트는 Swift 5.5에서 도입된 새로운 어트리뷰트로, 비동기적인 작업 중에 메인 스레드에서 코드를 실행하도록 하는 역할을 한다. 이 어트리뷰트는 Swift concurrency 모델에서 사용되며, 특히 async 함수나 블록에서 메인 스레드에서 UI 업데이트와 같은 작업을 수행할 때 유용하다. 예시 코드 👇 import UIKit class MyViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() fetchDataAndUIUpdate() } func fetchDataAndUIUpdate() { // 백그라운드에서 비동기적으로 데이터를 가져옴 Task { let data = await fe..
-
23.11.10 hugging과 resistance의 개념정리 / 뷰 컨트롤러의 라이프 사이클 개념정리
hugging과 compressionResistance는 Auto Layout에서 뷰의 크기와 내용에 대한 우선순위를 제어하는 두 가지 속성. 이 속성들은 주로 스택 뷰 (Stack View) 내에서 뷰의 크기를 결정하는 데 사용된다. 먼저 사전적의미 로는 Content Hugging (Hugging): Content Hugging은 뷰가 자신의 내용(content)에 "붙어있으려" 하는 정도를 나타냅니다. 뷰의 hugging priority가 높을수록 해당 뷰는 자신의 내용에 더 "붙어" 크기를 줄입니다. Priority 값이 높을수록 해당 축(가로 또는 세로)에서 크기를 유지하는 것이 더 우선됩니다. 라는데, 잘 설명해보자면 예를 들어서 , 다음 이미지를 보면 왼쪽뷰보다 오른쪽뷰가 더 같은선상에서 크..
-
23.11.09 ARC 개념정리 / TableVie 개념정리
ARC 는 Automatic Reference Counting 의 약자이다. 핵심개념은 참조형태를 추적하여서 , 현재 사용하지않아도 되는 참조 프로세스들을 자동으로 메모리에서 제거해줌으로써 메모리 누수를 방지해주는 것이다. Swift에서는 이 기능이 기본적으로 활성화 되어있고 개발자가 수동으로 처리해주지않아도된다. 다만 강한 순환참조와 같은 특정상황에서는 ARC를 수동으로 제어하는 방법도 고려해볼 수 있다. . . . 테이블뷰는 데이터소스 & 델리게이트로 이루어진 UI적 요소이다. 테이블 뷰를 사용함으로써 UI를 조금더 쉽게 관리하고 동적으로 표현 가능하다. 데이터소스 & 델리게이트에대한 설명은 다음과 같다. 데이터 소스 (Data Source): - 테이블 뷰에 표시되는 데이터의 원본을 정의함 - 데이..
-
23.11.08 앱의 상태 / 스토리보드를 이용할때의 장단점
통상정으로 앱의 상태를 5가지정도로 나누는데 , 다음과같다 Not Running = 앱이 아직 시작되지않거나 종료된상태 Inactive = 앱이 실행중이긴하지만 비활성화인상태, 대개 백그라운드에 있는상황이거나 , 활성화 되려면 다른앱이나 동작을 완료해야하는 경우에 발생 Active = 앱이 사용자와 상호 작용하며 활성화된 상태 ( 사용자가 이용중인 상태 ) Background = 앱이 백그라운드에서 실행중이며 활성화 되지 않은 상태. Suspended = 앱이 백그라운드에서 실행중이지만 아무런 활동도 수행하지 않는 , 일시 중단된 상태. 시스템 자체에서 메모리관리를 위해서 실행을 중지하는 경우가 많음 . . . 다음은 코드가아닌 스토리보드를 이용했을때의 장단점인데 , 스토리 보드를 사용하면 , 프로그래밍..
-
23.11.02 뷰(View)와 레이어(Layer)의 개념 / prepareForReuse의 개념
뷰(View): - 사용자 인터페이스 (UI)의 구성 요소 중 하나이다. - 버튼, 텍스트필드, 이미지, 레이블 및 사용자 지정요소 등 모든 UI 요소가 뷰이다. - 사용자에게 정보를 표시하거나 사용자 입력을 받는 역할이다. - UIView 클래스를 기반으로 하며 , 개발자가 서브클래싱하여 원하는 모양과 동작을 정의할 수 있다. 레이어(Layer): - 뷰의 기본 렌더링 구성 요소이다. ( 뷰에서 쓸 수 있는 요소라는 뜻 ) - UIView는 레이어에 뷰의 내용을 그리는 방법을 정의하는데 사용된다. ( 종이가 레이어고 , 그 위에 뷰를 그리는 느낌 ) - 레이어는 2D 그래픽 객체로써 , 텍스트 , 이미지 , 그림 및 기타 콘텐츠를 표시한다. - CALayer( 코어 애니메이션 레이어 ) 클래스를 기반으..
-
23.11.1 옵셔널(Optional)의 개념과 확장(Extension)의 개념
옵셔널(Optional) 은 Swift 언어의 중요한 특징 중 하나로, 값이 존재할 수도 있고 존재하지 않을 수도 있는 값을 나타내는 데이터 타입이다. var optionalValue: Int? // Int?은 Int 타입의 옵셔널 변수를 나타냅니다. 위의 코드에서 보면 , optionalValue 라는 Int 값이 존재하지않으면 오류가 발생할 수 있기때문에 , 오류 방지를 위해 만약 optionalValue 에 값이 없으면 nil을 할당시켜주세요 라고 해주는 ? 를 뒤에다 붙여주는것이다. 그러나 옵셔널로 지정을해두었지만 , 이 값에는 확실히 값이 들어갈거야 ! 하는 변수가 있을 수 있는데 그럴땐 let unwrappedNumber = optionalNumber! // 옵셔널 해제 위 코드와 같이 ! 느..
-
23.10.31 Grand Central Dispatch (GCD)와 Operation Queue의 차이점 / Delegate pattern 에 대한 설명
Grand Central Dispatch (GCD)와 Operation Queue는 iOS 및 macOS 앱에서 다중 스레딩 및 병렬 프로그래밍을 위해 사용되는 두 가지 주요 다중 스레딩 기술입니다. 다음은 GCD와 Operation Queue의 주요 차이점입니다 *다중 스레딩 : 하나의 컴퓨터 프로세스에서 여러개의 작업을 수행하는것 ( 컴퓨터 성능 최적화 & 응답시간 개선 ) *병렬 프로그래밍 : 다중 코어를 활용하여 작업을 병렬로 처리하는과정을통해 시스템성능을 향상시키는것 * 다중 스레딩이 병렬 프로그래밍안에 속해있으며 , 다중코어를 활용하는 각 코어 하나들이 다중스레딩으로 동작할 수 있음. GCD: GCD는 더 저수준의 API로, 간단하고 빠른 병렬 처리를 위한 기본 도구를 제공합니다. GCD를 사..
-
23.10.30 Codable을 이용한 JSON 디코딩법 / Auto Layout 에서 스택뷰와 같은 컨테이너 뷰의 역할과 사용법
먼저 디코딩을 위한 JSON 데이터와 일치하는 데이터모델을 정의해준다. { "name": "John", "age": 30, "email": "john@example.com" } 위의 예시 데이터 모델을 보면 , name , age , email 의 세가지 정보를 받게끔 정해두었다. struct User: Codable { let name: String let age: Int let email: String } 그리고 name , age , email 의 세가지 정보의 형태를 각각 지정해준다. import Foundation let json = """ { "name": "John", "age": 30, "email": "john@example.com" } """.data(using: .utf8)! do {..
-
23.10.27 프로퍼티 옵저버(Property Observer)didSet, willSet 의 개념 / bound&frame 의 차이점
프로퍼티 옵저버(Property Observer)는 Swift 언어의 기능 중 하나로, 클래스, 구조체, 또는 열거형의 저장 프로퍼티의 값 변화를 감시하고 그에 따른 동작을 수행할 수 있게 해준다. 자 , 일단 프로퍼티 랑 옵저버 라는 개념조차도 생소할텐데 , 값 변화를 감시한다는게 무슨의도를 가지고 어떤상황에 쓰는건지 감도 안올 것 이다. 먼저 프로퍼티란 ? 변수 또는 상수의 일반화된 용어로, 클래스, 구조체, 열거형 등의 데이터 구조 내에서 데이터를 저장하거나 제공하는 역할을 한다. 고로 // 저장 프로퍼티 struct Person { var name: String // 저장 프로퍼티 let age: Int // 저장 프로퍼티 (상수) } // 계산 프로퍼티 struct Circle { var rad..
-
23.10.23 JSON 데이터 / protocol ( 약간 ) 의 개념정리 1
JSON ( JavaScript Object Notation ) 키 - 값 쌍 으로 이루어진 데이터 오브젝트를 전달하기위한 인간이 읽을만한 텍스트를 사용하는 개방형 포맷. JSON 데이터를 많이 쓰게되는 경우 = 어플리케이션을 만들때 API 호출을 많이하게되고 , API호출로 받는 데이터의 형식이 JSON이기 때문에 JSON을 다루는것이 필수이다. 그럼 이 JSON 데이터를 사용하기위해서 Encoding 하고 Decoding 하는 과정이 필요한데, 과연 Encoding 과 Decoding이 뭘까? 간단하게 Encoding 은 Swift에서 쓰는 언어를 JSON문자열로 변경하는 것 이고 , Decoding 은 반대의 경우로 JSON문자를 Swift언어로 변경하는 것 이다. 이 Encoding Decodin..
-
23.10.19 헬스장 커뮤니티 제작 - 테이블뷰 고찰
헬스인들만의 커뮤니티를 만들고싶었고 , 본격적인 파이어베이스 구현 전에 나의 역할이 조금 시간이남아 전체 UI디자인 수정과 추가기능을 조금 구현하게 되었다. 아래 탭바 컨트롤러의 커뮤니티탭을 누르면 테이블뷰상태의 여러 게시글을 더미데이터에서 받아와 표시하게되고 오른쪽위의 버튼 두개중 왼쪽버튼을 누르면 이렇게 GYMGLE로 변하며 ( 왼쪽 위 로고 ) GYMGLE전체의 커뮤니티를 이용하거나 , 우리 헬스장이용객 만의 커뮤니티를 이용하거나 ( 대학교 에타 처럼 ) 할 수 있게된다. 오른쪽 위의 연필모양을 누르면 글 작성 화면이 present된다. 코드를 작성하면서 어려웠던 점은 TableViewCell파일 안에있는 UI 를 경로를 잡아 view에있는 커뮤니티 전환버튼을 눌렀을때 hidden이 되게끔 해보려했..
-
23.10.17 더미데이터를 이용한 데이터 구현 / 1주일차 프로젝트 회고 노트 작성 양식 만들고 작성해보기
오늘은 아침회의결과로 만들어진 UI에 계획해두었던 데이터를 집어넣어 보기로했다. FireBase를 활용한 실제 데이터를 이용해보기전 , 조금은 상세한 데이터계층구조를 확립하는게 중요할 것 같아서 각자 더미데이터를 이용해서 각자가 만든 UI페이지의 데이터를 구현하는것이 목표였다. 내가 맡았던 파트인 유저 루트뷰에서 필요한 데이터정보가 무엇인지 먼저 파악해보았는데 , 먼저 최상단에 이름데이터가 필요할것이고 , 아래에 최근공지사항 , 그리고 왼쪽 저번주 이용객 수와 오른쪽 현재 이용객 수 마지막으로 아래 상위퍼센테이지 ( 스크린샷 상 운동시간 ) 까지 총 5개의 데이터가 필요할 것 으로 판단되었다. 그래서 팀끼리 모델구조를 같이 만들어 두고 시작하는게 좋을것같아 제작해두었는데 , User모델에서 name과 s..
-
23.10.16 데이터 모델링에 관한 많은 고찰
UI와 페이지간 이동에대해 어느정도 구현을 완료하였다 ( 최종아님 ) 어느정도 UI작업이 마무리되어서 다음단계인 데이터를 구체적으로 모델링 하는 과정을 팀원들과 소통하는데 아무래도 실제 배포를 목적으로 하는 작업이다보니 , 처음하는거라서 다들 많은 고민과 토론을 하게되었다. 이전에 짜두었던 피그마속 데이터 모델링을 써보자니 너무 구체적인부분이라던가 설계적인부분이라던가 실전에 응용하기에는 조금 덜 디테일한것 같아서 새로 스프레드 시트에 정리를 해보려고했다. 그러나 이 과정에서도 입 퇴실로그를 회원정보에 넣을지, 헬스장정보에넣을지 부터 입퇴실로그의 범주는 어디부터 어디까지인지 , 사업자와 회원간의 구별을 어떻게 할 것인지등등 많은 고민을 하게되었다. 결국 너무 지체되지않으면서도 최선의 선택지라고 판단되는것을..
-
23.10.12 팀 과제 짐글 (GYMGLE) 기획 2
어제 짜놓은 기획과 UI를 기반으로 깃 컨벤션과 , 데이터 모델링을 하였고 각 데이터간의 연관성을 간단하게 정리해보았다. 실제로 출시할 앱을 만든다는 생각으로 많은변수를 고려해가며 짜다보니 하루종일 매달려도 시간이 부족한것같다 🥺 데이터저장을 위한 서버 자체는 파이어베이스의 리얼타임을 사용하기로 하였고, 필요한 데이터들을 다 정리해두었는데 입퇴장 데이터가 헬스장정보쪽으로 가야할지 회원정보 쪽으로 가야할지 고민을 많이했다. 회원정보쪽으로 입퇴장정보를 넣는다면 각 1명의 회원마다 데이터가 너무 많이쌓일것같아서 결국 헬스장쪽으로 넣기로했다. UI적인부분도 많이 수정했는데 , 가장 큰건 전체적으로 통일성을 맞추는 과정이 되었다. 또 유저뷰에서의 메인화면의 공지사항을 클릭하면 그 공지사항 내용을 자세히 볼 수 있..
-
23.10.11 팀 최종 프로젝트 GYMGLE의 기획 ( 유저입장 위주 )
최종프로젝트 GYMGLE은 헬스장에서 키오스크 체크인 하던 시스템의 업그레이드 버젼이라고 보면된다. 사용자는 어플로하여금 QR코드를 발급받아 이전 코로나 사태때와 비슷하게 헬스장 진입시 QR코드로 체크인을 할 수 있다. 최초 로그인과 헬스장에 회원등록을 할 시 언제 어디서든 헬스장에 현재 사람이 얼마나있는지 확인이 가능하며, 헬스장 자체 공지사항기능으로 쉬는날이 언제인지 , 이번주 어떤 트레이너가 휴무인지 등을 확인 가능하다. 또한 관리자의 관점에서도 많은 기능을 넣어두었는데, 어플로 손쉽게 회원을 관리하거나 등록하고 기간연장을 할 수 있으며, 회원들이 식별하기 쉽도록 공지사항으로써 헬스장내의 이벤트나 알림사항을 게시할 수 있다. 회원이 로그인을 하게되면 최초로 어떤 헬스장이 등록되어있는지 왼쪽상단에 이..
-
23.10.06 api와 compositionalLayout을 활용한 팀 프로젝트 날씨 앱 dayweather 완성
2주동안 제작한 날씨 어플인 DayWeather의 제작기 ! 어플 제작부터 발표자료준비까지 조금 세심하게 준비를 해보려고 노력했던것 같다. ⬆️PPT 자료 준비 ⬆️앱 시연 영상 앱 시연 과정에서 뒷부분의 음식추천기능은 본래 자신주변의 해당되는 음식을 추천해주는 기능까지 구현이 되었는데, 시뮬레이터 상에서는 오류로 뜨지않고 실 기기에서만 작동이 되었다. 그리고 이번 프로젝트를 진행하면서 compositionalLayout이랑 API활용을 처음 해보아서 아직 코드에 대한 숙련도가 낮은 관계로 내가 짠 코드를 한줄한줄 리뷰하면서 오답노트로써 공부하고 , API 를 활용할 수 있는 앱을 한개 더 만들어 보아야겠다.
-
23.09.25 새 팀프로젝트 시작 ( 날씨 앱 만들기 )
새 팀프로젝트로 주어진 세 종류의 앱중 ( 날씨앱, 단어장 앱, 알람 앱 ) 날씨앱을 만들기로 결정했다. 결정하게 된 계기는 가장 난이도가 높은 과제이기도 하고 날씨앱 특유의 api를 잘 활용하면 활용도 높은 어플을 제작할 수 있을것 같았다. 다행스럽게도 결정후에 이어진 회의에서 좋은 아이디어들이 많이 나왔다. 우선 아이폰에 내장된 기본 날씨앱이 굉장히 출중하게 역할을 다해준다는 생각을 하여서 , 최대한 보존하였고 아이폰기본 날씨어플이 아주 세부적인부분까지 제공해주는것과는 반대로 우리는 사용성과 접근성을 높여보았다. 사람들이 날씨앱을 활용하는 방법에는 무궁무진한 경우의 수가 있겠지만 , 가장 높은 활용도는 온도와 강수확률이라고 생각했다. 그래서 우리는 온도나 강수의 여부에따른 옷추천, 음식추천, 음악추천..
-
23.09.21 core data / 개인과제 UI 완성
코어데이터는 유저데이터처럼 데이터를 저장할 수 있는 매체이나 , 유저 데이터보다 훨씬 다양한 형태, 많은 양의 정보를 저장할 수 있다. 공부를 해봤는데 아직 개념이 잘 잡히지 않는다. ㅜㅜ 자 먼저 코어 데이터를 쓰려면 command + n키로 파일을 생성해주는데 , Data Model 형식으로 생성해준다. 그럼 왼쪽Task2같은 아이콘의 파일이 생기는데 , 우리는 여기서 ENTITIES ( 엔티티 ) 를 지정할 수 있다. 이 엔티티가 집이고 , 오른쪽에있는 Attribute가 집에살고있는 사람 이라고 보면 될 것 같은데 , 여기서는 Task2 라는 집 안에 String역할을 하는 Title씨 , Boolean역할을 하는 isCompleted씨 , Date역할을 하는 createDate씨 등등이 상주하고..
-
23.09.19 개인과제 UI 제작과 컬렉션뷰 사용
인스타그램 UI를 토대로 개인과제 디자인이 제시되어서 본의아니게 인스타그램을 또 제작했다. 그래도 이번엔 새로운 것들을 많이 이용하게 되었는데 , 우선 파란 버튼의 follow가 있는 곳이 미들바인데 그 미들바를 스택뷰로써 구현하였다. 근데 제시된 디자인을 구현하려면 맨 오른쪽의 m이 혼자 작아야하는데 스택뷰로 3개를 다 넣은 상태에서 재만 작은형태로 존재하게 하는것의 방법을 아직 찾지 못했다. 또 아래에있는 스택뷰가 중구난방으로 까불고있는것도 , 뷰를 1/3하여 한 열을 3개의 cell이 꽉 채워야하는데 그 코드를 잘 입력한 것 같음에도 마음처럼 되지 않는 상황이라 , 내일은 이 부분들을 다 수정해 보도록해야할 것 같다. extension instaViewController: UICollectionVi..
-
23.09.18 MVVM 다뤄보기 / snapkit 써보기!
스냅킷을 라이브러리에 추가해주고 UI요소를 코드로 구현하는 것을 이제 시작해보려고 공부를 해왔다. 나는 다른 코드들도 축약이 가능한줄 알았는데 , UI쪽만 축약가능한것같아보인다. 아마 내가 알던 다른축약은 then 라이브러리를 써야하는듯?? snapkit으로 여러가지 건드려보기전에 , MVVM 로 폴더별로 정리해보았는데 여러 자료를 참고해가면서 정리했음에도 이해도가 많이 부족하다.. 계속 해보면서 왜 이렇게 나누어지는건지 알아봐야할것같다. ( 동작원리도 잘 몰라서 일단 주석처리 해둠 )
-
23.09.15 연락처 만들기 진행상황 공유
개인적으로 더 공부를 하기위해서 만들고있는 아이폰 기본 연락처 앱. UI와 기능들 모두 구현하는게 최종 목표이다. ⬆️현재까지의 진행상황 무사히 해왔던것을 토대로 tableView 에 tableViewCell 을 잘 추가하였다. 단순히 추가만한것이아닌 이름별로 구현되게끔까진 해놓았는데 이 다음인 + 버튼을 눌러 저 array에 새로운 항목을 추가시키는것이 관건이 될 것 같다. alert의 작동방식과 , tableView의 개념이 조금씩 더 잘 잡혀가는것같아 뿌듯하다. 우선 tableVIew에 Cell 을 추가하는게 swift 파일을 새로 생성하여 그곳에서 관리하는걸 개념이 조금 잡혔고 , data 의 갯수만큼 cell이 생성되어야 하는것도 이젠 알겠다. 아래는 코드 전문 👇 ( configure로 정리 ..
-
23.09.14 [ IOS ] MVC 패턴과 MVVM 패턴의 기본 설명과 차이점
MVC가 무엇인가 ? M = Model V = View C = Controller MVC패턴이 뭘까? 코드를 짜다보면 각 코드들의 역할이 있다. 정말 UI UX 로만 그려주는 코드가있기도하고 , 여러가지 역할을 묶어주는 구조체의 코드가 있기도하고 데이터를 처리해주는 코드가 있는등 굉장히 다양한 코드가있는데 , 물론 이 코드들을 한 파일에서 관리할 수 있겠지만 코드가 길어지면 길어질수록 이런방식은 독이되며 곤란을 야기한다. 그래서 MVC 패턴을 사용하여 코드를 Model, VIew, Controller 의 역할 세개로 나누어 보기좋고 유지보수가 쉽도록 정리해두는 것 이라고 보면 된다. 간단히 설명하자면 Model은 데이터를 처리할 수 있는 곳, View는 위에서 설명한것처럼 UI UX를 직관적으로 그려내주..
-
23.09.12 팀 프로젝트 DooDle 만들기 발표 / 완성본
저번주 팀프로젝트의 발표가 오늘로써 끝났다. 이번 팀 프로젝트는 유튜브 / mapkit을 사용한 킥보드 어플을 택1 하여 제작하는 것 이었는데 우리팀은 mapkit을 사용한 우리팀만의 아이덴티티를 가진 앱을 만들고싶었다. 그래서 열띤 아이디어 공유끝에 ... 과제의 주제와 사용자의 활용성 ( 쓰고싶게 만드는 앱 ) 을 모두 고려한 어플인 DooDle 을 개발하게 되었다. DooDle ( 낙서 ) 앱은 , 사용자의 현재위치를 기점으로 각자가 낙서를 남기어서 정보를주거나 소통을 할 수 있는 어플인데 예시로 설명을 해보자면 내 주변에서의 맛집을가거나 물건을 사고싶다거나 할때 주변 반경의 정보를 좋아요수에 비례하여 탐색할 수 있는 어플인 것이다. 어플 시연 영상을 보면 - 회원가입 창 - 로그인 창 ( 회원가입..
-
23.09.01 todolist 최종 결과물 리뷰
메인화면 코드 👇 // // ViewController.swift // todolist개인과제 // // Created by t2023-m0088 on 2023/08/28. // import UIKit import SwiftUI class ViewController: UIViewController { let image1 : UIImageView = { // imageView의 형태지정을 위한 clouser let view = UIImageView() view.backgroundColor = .lightGray // 배경색은 lightGray로 하겠다. view.layer.cornerRadius = 25 // 모서리 둥글기를 25로 하겠다. view.image = UIImage(named: "ch..
-
23.08.31 init에 대한 개념정리 / todolist 글 저장 기능구현
init은 초기화 인스턴스이다. 근데 난 초기화라는 말만듣고 뭘 초기화한다는거지?? 저걸 왜 초기화한다는거지?? 잘 이해가 되지않았었다. 이번 장바구니 코드를 짜면서 init을 활용할 수 있음에 다시 그 개념에대해 공부를 해보았는데, 위와 같이 init 을 쓰지않는다면 아래의 product들 5개가 모두 출력되는것이아닌 , 한가지만 출력이된다. 그 이유는 print("\(self.name)","\(self.price)원") 이라는 코드가 product 코드들을 한줄한줄 읽어가며 프린트문을 수정하다가 결국 맨 아래에있는 snack을 받아 그것으로 출력을 하기 떄문이다. 그렇기 때문에 snacks 안에있는 5가지를 모두 출력해주려면 프린트 문의 name과 price를 받고있는 모든 let문들을 출력후 초기화..
-
23.08.28 to do list 심화앱 만들기 전 코드로 UI UX 새로제작하기
저번주에 공부했던 코드로 UI UX짜는 방법을 통해 이번주 목표인 투두리스트 심화과정을 제작했다. 우선 클로저를 이용하여 버튼 or 이미지 or 라벨등의 오브젝트의 형태를 만들어준 후 , viewdidload 창에서 불러와준다. 근데 이번에는 위치와 크기를 제단한걸 configure함수에 넣어서 그 함수를 viewdidload에 작동시키는 방법으로 코드를 훨씬 간결화 하였다. 그리고 가장 어려웠던 부분이 코드로써 버튼을 눌렀을때 다음화면으로 넘어가게하는기능을 구현하는 것이었는데, 아무래도 ios는 자료찾기가 하늘의 별따기다보니 , 자료를 찾는데 한나절걸렸다. 심지어 Only 코드로만 구현하는 자료가 또 찾기 하늘의 별따기라 제곱으로 시간이 걸렸다. 결국찾아낸게 addtarget 으로 ( 누가 클릭하며 ,..
-
23.08.25 장바구니 Class 로 구현해보기
구현 설계도👇 구현 코드👇 import Foundation print("안녕하세요 !") class HomeMenu{ func menu(){ print(""" 쿠팡 쇼핑몰 입니다. 구매를 원하시는 물품을 고르세요. 1. 간식 2. 생필품 3. 전자기기 """) } } let Home = HomeMenu() Home.menu() class Product{ var snacks = "간식" var lifeItem = "생필품" var electronic = "전자기기" } class Item1 : Product{ var snack = "포카칩" var snack2 = "초코송이" var snack3 = "예감" var snack4 = "웨하스" var snack5 = "뻥이요" func my_snack(){ ..
-
23.08.24 연락처 앱 오로지 코드로 만들어보기
우선 코드를 쓰는방법과 view를 만드는 방법에대해서 공부를 해본 후 일일히 기능에대해서 주석을 달았다. 👇 // // ViewController.swift // autolayout // // Created by t2023-m0088 on 2023/08/24. // import UIKit class ViewController: UIViewController { // 클로저로 뷰를 설정 var mySecondView : UIView = { // mySecondView는 UIView형태야 = let view = UIView() // view를 UIView 라고 정의하자! view.backgroundColor = .systemMint view.layer.cornerRadius = 16 view.translat..
-
23.08.23 아키텍쳐와 유저티폴츠 / 장바구니 클래스 재 복습
Architecture 앱의 구성요소들의 역할과 책임을 분리하는방법 - 유지보수의 용이 - 협업의 원활함 - 확장성 상승 IOS는 MVC Architecture를 사용 역할과 책임을 어떻게 분리하냐 ?! > model view controller 세가지로 나뉘어지며 , 각자의 역할은 Model - 데이터의 영역 . 데이터의 저장, 수정 , 삭제담당 View - 직관적인 view화면. 받은데이터를 표현함 Controller - model과 view사이의 데이터를 주고 받는 중간업체. view의 값을 수정했을때 model에 데이터가 입력되려면 이곳을 거쳐야하는 ( 반대경우도 포함 )등의 역할. Life Cycle 이란? 프로그램의 작동순서나 방식 UserDefaults 란? - 데이터 저장소 . 스마트폰 자..
-
23.08.21 팀프로젝트 완성 및 발표
저번주 진행했던 SNS프로젝트에서 인스타그램을 만든 우리팀의 발표가 오늘 진행되었다. ⬆️앱 시연 영상 각자 맡은 파트를 잘 소화해내어 인스타그램과 최대한비슷한 앱을 구현해내었다. 가장 어려움이 많았던 깃 머지 과정인데 , 스토리보드를 4명중 3명이 이용하다 보니 , 어쩔 수 없는 다량의 conflict가 발생이 되었다. 다음엔 코드를 이용하여 구현하는것에 핵심을 두어야 이 현상을 방지 할 수 있다는것을 깨달았다. 코드로 구현할때 가장 어려웠던 부분은 스토리보드를 이용해 만든 ui를 아울렛을통해 실제 메인화면과 네비게이터로써 연결하는 방법이 많이 어려웠다. 우선 이번과제를 스토리보드에대한 숙련도를 기준으로 잡았기때문에 , 스토리보드에 대한 숙련도자체는 많이 향상이 되어서 다음과제목표를 코드구현으로 잡으면..
-
23.08.18 서브웨이 클래스 설계 / SNS프로젝트 진행상황
프로퍼티와 이니셜라이저 인스턴스의 개념이 잘 잡혀있지않아서 추가로 공부를해가며 짰다. 우선 샌드위치를 구매하기위해서 구매 클래스를 만들어준다. 구매용 클래스에는 상품개수 , 장바구니에 담긴 물품( 종류 ), 샌드위치의 조합식( 뭐는 빼주세요 ) 정해진값들위주로 구성을해두었고 샌드위치 종류를 담는 클래스의 프로퍼티에는 샌드위치의 이름, 가격, 기본 조합식을 담았다. 이탈리안 bmt, 에그마요 같이 종류가 나눠진다고 보면된다. 그리고 샌드위치 조합 클래스에는 각각의 재료를 분류해놓아서 그것의 인스턴스를 빵 야채 치즈 소스로 나누어두었다. (작성중)
-
23.08.16 swiftUI tableView 개념 정리
TableView - 세로로 스크롤되는 콘텐츠 행들을 표시함. ( UIScrollView 상속받아서 스크롤이 가능한거임 ) - 각 행의 콘텐츠를 표시하는 cell로 구성된다. (위의 사진처럼 각각의 행이 cell이며 cell이 모여서 tableView가 구성된다) - 세가지의 Cell 스타일을 가지고있다. 차례대로 plain , grouped , insetGrouped 스타일이다. 출처 : https://inuplace.tistory.com/1174 스타일 지정법은 다음과 같다. var tableView = UITableView(frame: .zero, style: .insetGrouped) - UITableView를 생성했으면 이 테이블뷰에 다른데서 받는 데이터를 넣어주어야하는데 , 그걸 UITable..
-
23.08.14 팀 프로젝트 시작 / 인스타그램 앱 제작 ( 대략적인 구성 및 제작기 ) (1)
새로운 주가 시작되고 이번주부터는 팀 프로젝트를 또 하게되었다. 요번 주제는 SNS 앱 제작해보기. 우선 필수 구현목록을 팀원들끼리 나누어 분담하여 github 머지하는 방식을 채택하기로했다. 첫 목표로 노션에서 와이어프레임 제작과 , 역할분담 , 그리고 진행상황 공유약속 등을 진행하였다. 우선 나는 메인화면을 맡게되었는데, 메인화면이라고해서 단순히 ui ux만을 고민해야되는것이아닌 , 좋아요를 눌렀을때 올라가는 좋아요 수 라던가 포스팅의 ... 을 누르면 게시글을 수정하거나 삭제할 수 있다던가 , 위에 뜨는 스토리를 누르면 스토리창으로 들어가진다던가 하는 기능들의 추가가 핵심적으로 필요했다. 그래도 우선적으로 기본적인 틀을 잡아놓고 시작해야하니 ui를 먼저 제작해 보았다. 우선 반복되는 스토리창 즉 게..
-
23.08.11 swift ui로 실로폰 제작
IBAction 으로 KeyPressed 즉 버튼눌렸을때의 상황을 만들어준 후 , 버튼이 눌리면 playsound가 되게 만들어준다. 미리 만들어 둔 사운드 에셋파일들을 활용하여 ( 실로폰 도레미파솔라시의 음 ) 각각의 음을 누르면 해당되는 음이 나오도록 지정해준다. ( sender.currentTitle! ) ⬆️실로폰 구현 영상
-
23.08.10 sort & filter 함수 만들어보기 / 알고리즘 문제 - 영어가 싫어요
sort 라는 함수는 배열안의 문자나 숫자를 차례대로 오름&내림차순 정렬해주는 함수이다. 이 함수를 자체제작해서 만들어보려고 제작해보았다. func sort(number:[Int]) -> [Int]{ // 입력자가 입력하는값이 배열 [] [1,5,3,2] var answer:[Int] = [] for i in 0...(number.count-1){ // var numminus = (number.count-1) var iplus = i + 1 if i > iplus{ answer += [i] iplus + 1 }else { iplus + 1 } } return answer } 여러가지로 머리를 굴려봤는데 , 이게 맞는지는 테스트 해보지못하였지만 우선 코드..
-
23.08.09 optional 개념정돈 / clouser 살짝이해해보기 / 알고리즘 n의 배수 고르기 / navigationView
우선 Optional이 지정되지않은값을 nil값으로 return 해주는 함수인것은 알고있었다. 근데 형식에대해서 조금 더 공부가 된 부분이 , throws 로 던져서 guard문으로 받는다는 개념. 즉 throws 는 " 이거 optional 일 수도 있어 " 라고 던져보는것이고 그 optional 예상 코드를 guard문 안에 넣어준다. 그리고 아래에 case 문들을 보면 에러코드들을 등록해놓은걸 볼 수 있는데, 개발자들은 항상 저런식으로 에러코드들을 한번 정리를 싹 하고 코드를 짜는게 좋다고한다. 그리고 저 에러코드들은 optional 즉 nil 값이 추출될때 사용하기에도 적절하기때문에 밀접한 관계가 있다고 볼 수 있다. 다음은 clouser 이다. 개인적으로 여태까지 배운 swift문법중 제일 이해..
-
23.08.08 알고리즘 로그인성공? / table view 개념정돈
오늘의 알고리즘 문제 로그인 성공? import Foundation func solution(_ id_pw:[String], _ db:[[String]]) -> String { // index[0][1][2] 잘 활용할 것 for i in db{ if i[0] == id_pw[0]{ if i[1] == id_pw[1]{ return "login" }else{ return "wrong pw" } } } return "fail" } 먼저 문제를 보면 db 라는 데이터베이스 안에서 id_pw를 ( 아이디 비밀번호 ) 찾았을때 일치하면 login 불일치하면 fail 아이디만맞으면 wrong pw를 리턴해주는 함수를 만들어야한다. 일단 for문돌려서 db안에서 i를 탐색한다! 그다음 i의 값이 만약에 id_pw와..
-
23.08.07 배운 문법들 개념 정리본 / 알고리즘 (직사각형 넓이 구하기)
함수의 형태 func 함수이름 (매개변수1이름: 매개변수1타입, 매개변수2이름: 매겨변수2타입 ...) -> 반환타입 { //함수 구현부 return 반환값 } func(펑션) 을 넣으면 함수 동작. 함수는 통상 기능구현을위해 사용. 매개변수를 넣는방법 - () 안에 123:Int, kiho:String, 1.5:Double 요런식으로 넣어준다. 반환 타입은 위에 적은 매개변수들을 어떤식으로 return 할 것 인지를 정해준다. 예를들어 123:Int -> String 이 된다면 123은 "123"으로 출력이 될 것이다. 전달 인자 // from과 to라는 전달인자레이블이 존재 // myName과 name이라는 매개변수 이름이 있는 welcome 함수 func welcome(from myname: Str..
-
23.08.04 문자열 정렬하기 알고리즘 / 계산기 constraints
저번에 풀었던 문자열 정렬하기문제의 새로운풀이방식을 공유해보고자 글을 쓰게되었다. 우선 나와는 다른풀이를 팀원분께서 작성해주신건데, 그 풀이가 너무 신박해서 가져왔다. 코드의 작동방식에대해서 풀이해 보자면 일단 my_string 안에있는 값이 문자와 숫자의 혼합된 형태인데, 그 안에있는 숫자만뽑아서 오름차순 정렬하는게 문제의 핵심이다. 나는 이 문제를 먼저 charcter값으로 문자들을 변환 후 , for문을돌려 숫자인 문자들을 추출해 다시 Int값으로 돌려주고 sorted로 오름차순 정렬로 풀어내었는데 이 풀이방식은 먼저 my_string을 map함수로 묶어주고 그 맵핑된 my_string을 (testList) 다시 compactMap으로 묶어주어서 Int값만 찾아낸다. 빨간색으로 변환시킨문장이 잘 이..
-
23.08.03 IBAction&ViewController 의 개념과 알고리즘 문자열정렬하기 문제
먼저 IBAction 을 알려면 IBOutlet 부터 알아야한다. IBOutlet의 예로 오늘 내가만든 주사위던지기 앱 화면을 가져와보겠다. IBOutlet 이란 내가 만든 오브젝트들을 코딩으로 구현하기위해 앞으로 이 오브젝트를 코드로 구현할 수 있다고 선언해주는것이다. ⬆️IBOutlet을 만들어내는 구현영상 그렇게 아웃렛을 만들어 냈다면 , 이제 그 아웃렛 ( 각각의 오브젝트 ) 에 액션을 넣어주기위해서 IBAction함수를 넣어주는것이다. 액션이라하면 버튼누르기 , 줌 , 줌아웃 이런것들이 있겠지? 그렇게 해서 오늘 만든 주사위 던지기 어플이다. ⬆️주사위 어플 시현영상 // // ViewController.swift // Dicee-iOS13 // // Created by Angela Yu on ..
-
23.08.02 SWIFT 알고리즘 문제풀이 / 숫자찾기 & 문자열 정렬하기
오늘 풀어본 첫번째 문제는 숫자 찾기이다. 알고리즘 문제를 풀때는 항상 어떻게 코드로 그려낼지를 고민해야한다는 것에 중점을 두고, num 안에서 k 의 값을 찾아내어 그 k의 값이 몇번째자리에 있는숫자인지를 계산하는 식을 생각해냈다. 그리고 몇번째 자리에있는 숫자인지를 표현할때는 보통 array값이 0부터 시작하니 +1을 해서 return 값을 추출해내는걸로 나름의 치밀함을 갖추고 코드를 짰는데 , 역시나 문법이 부족한탓에 계속 문법적인곳에서 실수를 하는것같다. func solution(_ num:Int, _ k:Int) -> Int { // num이 인트값이라 배열이아님 for (index , value) in num.enumerated(){ // index 0 1 2 3 4 // value 2 9 1..
-
23.08.01 swift ios ui / 공식문서 참조
포스팅 형식을 너무 일기처럼 쓰는것같아서 배운점과 오답노트형식의 서술로 바꿔보려고한다. swift에서는 어플리케이션을 다운받아서 실행했을때의 화면을 마음대로 커스텀할수있다. 이 화면에서 자신이 넣고싶은 오브젝트를 골라서 화면에 넣을 수 있다. 이미지를 넣고싶으면 이미지를 , 텍스트를 넣고싶으면 텍스트를 넣을 수 있는것이다. 포토샵처럼 텍스트를 삽입하면 디자인적인부분을 수정할 수 있는 창이 생긴다. x 와 y 값으로 오브젝트의 위치를 수정가능하기도 하고, 간편하게 마우스 드래그로 핸드폰 여기저기에 위치 배정이 가능하다. 그리고 실제 어플리케이션을 실행하기위해서는 앱 아이콘까지 제작을 해야 하는데, 간단하게 만들 수 있는 사이트를 알려주셔 만들어보았다. https://www.canva.com/ 실제로 아이폰..
-
23.07.31 swift UIview & UIviewcontroller 기초 공부
우선 오늘 공부한 7개강의에서 마지막파트인 스크롤뷰와 스크롤줌의 코드이다. import UIKit class ViewController: UIViewController, UIScrollViewDelegate { var scrollView : UIScrollView! var imageView: UIImageView! override func viewDidLoad(){ super.viewDidLoad() scrollView = UIScrollView(frame: CGRect(origin: CGPoint(x: 0, y: 300), size: CGSize(width: view.bounds.width, height: 300))) scrollView.delegate = self let image = UIImage(..
-
23.07.28 알고리즘 천국과 키오스크 코드수정 그리고 과제 최최최종본 제출
오늘 풀어본 알고리즘은 최댓값 만들기와 숫자찾기 그리고 캐릭터의 좌표이다. 물론 나는 아직 기본문법부터가 많이 모자란 상태이어서 내 혼자힘으로는 풀기 힘든것같다. 공부를 진행하면서 느끼는건 매번 벽에부딪히고 매번 박탈감이 들지만서도 애니캐릭터 빙의된 감정같은게 자꾸 든다 ( 애니 잘모름 ) 자 우선 최댓값 만들기 부터 보겠다 import Foundation func solution(_ numbers:[Int]) -> Int { var sorted = numbers.sorted() return sorted[numbers.count-2]*sorted[numbers.count-1] } 처음 이문제를 접했을때 복잡하게 생각하느라 바빴다 var 하나만들어서 거기에 array값으로 배열 만든다음에 그 배열을 for..
-
23.07.27 알고리즘문제 깔짝 / 옥천HUB 만큼의 GITHUB 지옥
거두절미 하고 본론부터 말하자면 팀원들과의 협업을위해 git hub에 파일을 올리고 merge하는과정에서 오류가 수천번도 더 나는바람에 한 이틀을 통으로 날렸다 그래도 팀원들이 긍정적이면서도 상황돌파욕구가 상당하신분들이라 결국 해결해냈다! 우리의 피땀 가득한 리포지터리이다. 왼쪽위를보면 브랜치가 7개나있다 ( 한 10~20개는 지우고 만들고 한듯) 내 이름의 브랜치만 3개가있다. 그나마 다행인건 내가 swift 문법이나 코드, 코딩쪽에서 많이약해서 팀원분들이 도움을 많이 주셨는데 github는 비교적 잘 아는쪽이어서 도움을 많이 드릴 수 있었다. 우리가 정리한 깃 협업 관련 내용이다. 정말 악독한녀석이다 단순히 복잡한것뿐만이아닌 저 복잡한 과정에서 오류가 엄청나게많았다. 그래도 잘 정리한결과 개념이 모두..
-
23.07.26 알고리즘 문제풀이(몫 구하기, 배열 두배 만들기,) / 서브웨이 키오스크 (2)
알고리즘이라는것이 코딩에서 굉장히 중요한걸 알게되었다. 코드를 짜기위해서는 단순히 어떻게 짜세요 . 네 . 이러고 바로 짜지는게아니라 어떻게 어떻게 짜겠다는 계획과 기술적고민을 해야된다는걸 알아서 알고리즘에대한 문제풀이를 열심히 해보려고한다. ( 하루 5문제 목표 ) 프로그래머스라는 페이지의 알고리즘을 차례대로 풀어보았다. 먼저 몫 구하기 ( 거의 난이도 순으로 정렬 되어있음 ) 우선 func으로 함수 만들어주고 num1 이랑 num2 값 숫자로 받을거니 int로 형변환 ! num1 을 num2 로 나눌 거니까 num1/num2를 해줄거고 변하지 않는 수니 let answer로 객체지정해준다. 그다음 리턴값으로 answer를 주면 나눈값( ex 10을 5로 나누면 5가 두번들어가서 2 ) 이 출력된다...
-
23.07.25 서브웨이 메뉴판 / 프로젝트 구성&와이어프레임 / 제품구매 및 게임기능 구현 등
어제 만들었던 팀프로젝트 0 ~ 1단계인 쉑쉑버거 메뉴판의 코드를 팀원들끼리 다 공유하고 , 이제 나아가야 할 2 ~ 5단계 프로젝트를 구성하는단계에서 갑자기 번뜩!!!! 서브웨이의 메뉴 조립 시스템이 내 머리에서 떠올랐다. 양상추는 넣어주시고 올리브는 빼주시고하는 청기백기 형식의 코드를 짜면 성장에 도움이 되지않을까 라는생각이었지만 사실 복잡할 수도 있는거였는데, 그래도 뭔가 도움이 많이 될 것같아 서브웨이아이디어를 제시했고 흔쾌히 받아주셨다. 또 그 서브웨이를 사기위해 게임을해서 돈을 얻는 시스템까지 구현하자는 아이디어도 팀원분께서 주셨고 한편으로는 게임 구현과 동시에 게임만 한 2시간 할것같아서 무섭기도했다. 피그잼을 이용하여 프로젝트의 구성안을 대략적으로 빠르고 직관적이게 짜보았고 , 팀원 5명에..
-
23.07.24 팀 프로젝트 - 쉑쉑버거 메뉴판 / 제품 구매 코드짜기
쉑쉑버거의 메뉴판을 만들고 , 제품을 구매하기위해 돈을 지불하며 금액이 차감되는 기능을 구현하였다. 처음엔 if 문을 사용하여 만약 1번을 누르면 > 1번메뉴로가고 그게아니라 2번을누르면 > 2번메뉴로가고 이런식으로 코드를짰었지만 뭔가 switch문이 더 범용성측면에서도좋고 나중을 생각해서도 좋을거라생각해서 전부다 갈아엎었다. 그러나 switch문을 사용하면서 if문에서는 안보였던 문제점이 보여 수정해야할것같다. let out = "프로그램을 종료합니다." print(menu) let menu = """ ================================================== 아래 메뉴판을 보시고 메뉴를 골라 입력해주세요. [ SHAKESHACK MENU ] 1. Burgers | 앵거..
-
23.07.21 swift / 계산기에 대한 이해 / 호텔 프로그램 제작기(1)
저번 계산기코딩에서 상속을 통해 클래스를 나눠 각자의 역할을 분배하는것을 연습했었는데 , 여러곳에서 나의 코드를 설명들었지만 잘 이해가 되지 않았다. 결국 코드를 다시 구성하며 도움을 받아갔지만 잘 이해가 되지않았고 , 상속에 대해서는 이해가되었지만 내가 짠 코드가 너무 뒤죽박죽이라 이렇게가다간 머리가 터질것같아서 또 다른 과제인 호텔프로그램을 먼저 시도해보기로 하였다. 아래는 계산기 코드이다 👇 //class AbstractOperation{ // // func abstractOperation(number: Double, number2: Double) -> Double{ // // return 0 // // } //} class Caculator{ // switch 넣어 기능구현 let p : Plu..
-
23.07.19 계산기 프로그래밍(3)
계산기만들기과제 레벨3을 진행하기위해선 상속의 개념에 대해 알아야할것같아 자료를 찾아보다보니 https://babbab2.tistory.com/17 Swift) Optional 부수기 (3) Optional Unwrapping - 옵셔널 바인딩(if let vs guard let) 안녕하세요 소들입니다 💀 (헬쓱) 퇴근 후 포스팅은 피곤하네여.. 요즘 회사 일은 Objective-C로 개발하고 포스팅 및 개인 프로젝트는 Swift로 하니까 혼돈의 카오스 옵젝씨 코드에 세미콜론 빼먹어 babbab2.tistory.com 이곳에서 아주 상세히 설명해주고있었다. 너무 잘 설명하고 정리해주시는 글인걸 보고 블로그를 정독하고있다 또 직접 ui/ux를 확인해가며 계산기를 만들 수 있는 좋은 영상을 찾아서 보면서 제..
-
23.07.18 계산기 프로그래밍 (2)
어제 배운 문법에대해서 이해가 잘 되지않아 https://nbcamp-1.gitbook.io/swift-handbook/swift/chapter-04./4.2/4.2.1-if 4.2.1 if 구문 - 내일배움캠프 - Swift 학습 자료 키워드 if 다음에는 조건식이 사용되는데, 이 조건문은 반드시 Bool 타입의 참(true), 거짓(false)를 판단할 수 있는 형태의 구문이여야 합니다. 과거 C 스타일의 if 구문에서는 참, 거짓 대신 0이나 1을 nbcamp-1.gitbook.io 이곳의 자료를 천천히 쭉 읽어보았다 또 팀원분의 자료공유로 백준 이라는 코딩문제집 사이트를 알게되었고 a + b 라는 문제를 풀기위해서 // // main.swift // backjoon // // Created by ..
-
23.07.17 계산기 프로그래밍 (1)
각종 swift 문법을 배웠다 그러나 너무 막막해서 일단 애플에서 제공해주는 swift 설명페이지를 막연하게 다 읽어보며 어떻게어떻게 더하기 곱셈 나누기 빼기의 코드를 각각 짜는데에 성공했다 그러나 그 코드들이 다 따로 나누어져 있어 한곳에 모으는것을 튜터님께 설명듣고 caculator_plus , caculator_minus 이런식으로 나누어져있던 클래스들을 caculator 라는 클래스 하나에 몰아넣어 import UIKit class Caculator{ func add(number: Int, number2: Int) -> Int { return number + number2 } func minus(number: Int, number2: Int) -> Int { return number - numbe..
-
23.07.10 / flutter 첫 시연 및 세팅
플러터의 기본 개념과 기본 기능들에 대해서 공부하고 이번 주의 팀과제 진행을위한 실습을 진행하였다. 아직은 첫 프로그램을 만져보는 수준이라 이해가 되지않는 부분이 많다. 또 팀과제의 핵심이라고 할 수 있는 협업에 깃허브 조작이 필수라는걸 깨닫고 어렵겠지만 팀원들과 깃허브를 많이 사용해보기로 하였다. 앱 > 로그인창 제작해보기 깃허브 코드 git add . git commit -m"" git push origin main git clone https://github.com/MacAroni-1/macaroni.git git pull origin main git branch xxx git switch xxx 1. git init 2. git add . 3. git commit -m "xxxxxx" 4. git..