목록전체 글 (321)
꾸준히 안타치기

테이블뷰 생성 동적 프로토타입(Dynamic Prototypes) 셀 하나를 디자인해 이를 다른 셀의 템플릿으로 사용하는 방식 같은 레이아웃의 셀을 여러 개 이용해 정보를 표시할 경우 데이터 소스(UITableViewDataSource) 인스턴스에 의해 콘텐츠를 관리하며, 셀의 개수가 상황에 따라 변하는 경우에 사용 정적 셀(Static Cells) 고유의 레이아웃과 고정된 수의 행을 가지는 테이블뷰에 사용 테이블뷰를 디자인하는 시점에 테이블의 형태와 셀의 개수가 정해져 있는 경우 사용 셀의 개수가 변하지 않음 테이블뷰 구성요소 테이블뷰를 구성하기 위해 꼭 알아야 하는 개념에는 셀(cell), 델리게이트(delegate) 그리고 데이터 소스(data source)가 있습니다. 테이블뷰 셀 테이블뷰 셀(T..
https://www.boostcourse.org/mo326/lecture/256094?isDesc=false iOS 앱 프로그래밍 부스트코스 무료 강의 www.boostcourse.org import UIKit //delegate 메소드 2개가 필요 class SecondViewController: UIViewController,UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBOutlet weak var nameLabel : UILabel! @IBOutlet weak var ageLabel : UILabel! // 이미지 피커 lazy var imagePicker : UIImagePickerController = { let pi..

Target-Action 디자인 패턴 ( 단순한 액션 ) / 다양한 상황에 맞게 할때는 - delegate 디자인 패턴 활용 Target-Action 디자인 패턴은 iOS 환경에서 많이 사용하는 디자인 패턴 중 하나입니다. Target-Action 디자인 패턴에서 객체는 이벤트가 발생할 때 다른 객체에 메시지를 보내는 데 필요한 정보를 포함합니다. 액션은 특정 이벤트가 발생했을 때 호출할 메서드를 의미합니다. 그리고 타겟은 액션이 호출될 객체를 의미합니다. 이벤트 발생 시 전송된 메시지를 액션 메시지라고 하고, 타겟은 프레임워크 객체를 포함한 모든 객체가 될 수 있으나, 보통 컨트롤러가 되는 경우가 일반적입니다. 직접 타겟이 될 객체에 액션에 해당하는 메서드를 호출하면 될 텐데 굳이 Target과 Act..
Object Oriented Programming(O.O.P.) OOP / 객체지향 프로그래밍 세상의 모든것을 객체라는 것으로 표현을 하자는 관점 객체 - 특성과 행위를 가지는 형체 / 이 세상에 존재하는 모든 것 객체 지향프로그래밍은 문제를 여러개의 객체 단위로 나누어 작업하는 방식을 말합니다. 클래스를 이용해 연관있는 처리부분과 데이터부분을 하나로 묶어 객체를 생성해 사용하며, 프로젝트를 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에, 협업이 가능하고 유지보수를 하기에 용이하다는 장점이 있습니다. 객체지향 디자인패턴 https://www.youtube.com/watch?v=lJES5TQTTWE Singleton 패턴: 01:01 Strategy 패턴: 03:52 State 패턴: 06:48 C..

Delegation 델리게이션에 대해 자세히 살펴보기 전에, Delegate의 사전적 의미를 알아두면 내용을 이해하는 데 도움이 됩니다. Delegate: [명사] 대표(자), 사절, 위임, 대리(자) [동사] (권한, 업무 등을) 위임하다, (대표를) 선정하다 델리게이트란? 하나의 객체가 다른 객체를 대신해 동작 또는 조정할 수 있는 것을 의미 객체가 해야할 일을 부분적으로 확장하여 대신해서 처리를 해준다. 하나의 객체가 모든일을 처리하는 것이 아니라 처리해야할 일 중의 일부를 다른 객체에 넘기는 것을 말한다. 그 업무를 잘하는 사람에게 일을 대신해달라고 요청하는 것 델리게이트는 쓰면 뭐가 좋은가? 기능을 위임할 수 있는 객체가 있다는 것은 그만큼 직접 구현해야하는 부분이 적다는 뜻 -> 효율성이 높다..
뷰의 상태 변화 메서드 뷰가 나타나거나 사라지는 등 뷰가 화면에 보이는 상태가 변화할때 호출되는 메서드입니다. 각 메서드가 호출 될때의 시점과 수행하면 좋은 작업을 확인해보세요. func viewDidLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메서드 뷰의 추가적인 초기화 작업을 하기 좋은 시점 메모리에 처음 로딩 될때 1회 호출되는 메서드로, 메로리 경고로 뷰가 사라지지 않는 이상 호출되지 않음 func viewWillAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되고 화면이 표시되기 직전에 호출되는 메서드 뷰의 추가적인 초기화 작업을 하기 좋은 시점 다른 뷰로 이동했다가 되돌아오면 재호출되는 메서드로, 화면이 나타날때마다 수행해야하는 작업을 하기 좋은 시점 func view..

인텔리제이에서 서버를 먼저 켜고, 클라이언트를 켠다. 로그온창에 아이디를 입력하고 엔터를 친다. 대화말에 대화내용을 친다. 클라이언트를 여러개 실행하려면, 클라측 코드를 복사해서 하나 더 실행시키니 되었다. ChatMessageS.java (서버) import javax.imageio.IIOException; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; import jav..

📘 Model - 데이터 클래스( 프로세스가 동작중일때 메모리(변수)안에 데이터가 있는 상태) ⭐️ Controller | 모델과 뷰를 이어주는 부분 - 모델의 데이터를 해석하고 구성해서 뷰에게 전달한다. - 뷰에서 발생하는 이벤트를 입력받아 처리 /UI로직 - 뷰와 모델을 변화시키는 알고리즘이나 소스코드가 위치한 곳 📱 View - 화면에 표현 / 사용자 눈에 보이는 모든 것 버튼, UI레이블, 등등 (뷰는 컨트롤러의 하인) Model - View - Controller MVC(Model-View-Controller) 디자인 패턴은 애플리케이션의 객체를 모델, 뷰, 컨트롤러의 세 가지 역할 중 하나의 역할로 할당합니다. 이 패턴은 애플리케이션 내에서 객체가 수행하는 역할 뿐만 아니라 객체가 서로 통신하..
https://www.boostcourse.org/mo326/lecture/16876?isDesc=false 프로그래밍 디자인 패턴이란 무엇인가? 디자인 패턴의 저명한 인사들이 내린 정의입니다. • GoF "특정한 상황에서 일반적 설계문제를 해결하기 위해 상호교류하는 수정 가능한 객체와 클래스들에 대한 설명이다." • 라만(C. Larman) "숙련된 객체지향 개발자 및 기타 소프트웨어 개발자는 소프트웨어 개발의 가이드라인이 되는 일반적인 원칙들과 관용적인 해결책들의 레퍼토리(repertoire)를 구축한다. 패턴은 이러한 원칙들과 관용적 해결책들이 문제와 해결책을 기술하는 구조적인 형태로 체계화되고 명명된 것이다." 프로그래밍 디자인 패턴은 소프트웨어를 설계할 때 특정 상황에서 자주 사용하는 패턴을 정..

https://www.youtube.com/watch?v=5RBUH-2PcN4&list=PLgOlaPUIbynoqbQw_erl3L2w7vfOTCtFD&index=9 어떤 자료형이든지 받는다.

https://youtu.be/gYXNCJntXAY struct class - 기능집합이다. 가장 큰 차이는? 값을 복사하느냐 ! 복사본은 영향을 안받음 / 안전 / 상속이 안됨 참조하느냐? (서로 연결이 되어있다. 영향을 받음) struct class 값에 의한 전달 참조에 의한 전달 ( 서로 연결되어 있어 영향을 받는다.) 값 복사 참조하는 값이 바뀌어도 기존 값에는 영향이 없음. 공유해서 사용함 기존값에는 영향이 없으므로 안전하다. 상속이 안된다. init이 있다.(초기값을 설정한다.) 생성자를 만드는것 = 메모리에 올린다. // init으로 매개변수를 넣어서 그값을 가진 객체(object)를 만들 수 있다. 클래스는 공유해서 사용하는 개념. 참조( =메모리 주소를 가리킨다.레퍼런스)하는 값이 바뀌..

옵셔널이란? 값이 있을수 있고 없을수도 있다. 값이 있는지 없는지 그것을 알지 못하는 상태이다. ?가 없다면 값이 있는 상태이다. 값이 있을 수도, 없을 수도 있음을 표현 nil이 할당 될 수 있는지 없는지 표현 옵셔널이 왜 필요할까? 추후 값이 들어오는 것에 따라서 유동적으로 처리하고 싶을때! nil의 가능성을 명시적으로 표현한다. 전달받은값이 옵셔널이 아니라면 nil체크를 하지 않더라도 안심하고 사용 예외 상황을 최소화하는 안전한 코딩 예를 들어, 네트워크 작업을 통해 데이터가 들어왔는지? 들어오지 않았는지? 를 우리는 장담할 수 없음 그럴때 데이터형을 옵셔널로 처리해놓고, 데이터가 존재한다면 -> 데이터에 맞게 처리하고 데이터가 존재하지 않는다면 (nil) -> 예외 구문 처리하고 유동적으로 후속 ..

enum은 타입을 나눈다라고 보면된다. enum의 사전적의미 - 열거하다. 관련값의 그룹을 나누기 위해서 사용한다. enum은 값을 가질 수 있다. https://www.youtube.com/watch?v=25A2ZRdVmxs&list=PLgOlaPUIbynoqbQw_erl3L2w7vfOTCtFD&index=3