CS7 [CS] Linked List, 배열 차이점 배열: 연관된 데이터를 한꺼번에 묶어서 주로 사용, 연속된 물리적 메모리 공간에 데이터 저장 데이터를 삽입할 때 삽입하고자하는 위치보다 뒤에있는 원소들을 뒤로 밀어줘야하고, 삭제하려면 빈공간을 채워줘야하는 번거로움이 있다 Linked List: 배열의 삽입과 삭제에 느꼈던 불편함 해소 가능 2022. 3. 31. [CS] RESTful API Reoresentaianl State Transfer: 소프트웨어 프로그램 아키텍쳐의 한 형식 REST: HTTP 프로토콜을 그대로 활용, 웹의 장점 최대한 활용가능 자원에 대한 행위는 GET, POST, PUT, DELETE 등 HTTP Method로 표현한다. URI를 통해 자원 명시 웹의 모든 자원에 고유한 HTTP URI 부여 ( 이미지, 동영상, DB ... ) 네트워크 상에서 Client와 Server 사이의 통신 방식중 하나 ex) http://www.a.com/posts/a-post REST API REST의 특징을 기반으로 서비스 API를 구현한것 ex) 구글맵에서는 REST API 제공 API: 자원을 줄테니까 거기서 처리해서 나한테 결과를 보내줘 특징: 요청 자체로 무엇을 할지 추론 .. 2022. 3. 7. [CS] MVVM 간단하게 메모 MVVM(Model - View - ViewModel) Model: 데이터구조정의 해서 ViewModel에게 결과를 알려줌, View와 이어지지않음 private var todoListVM: TodoListViewModel! //todoListVM : ViewModel, todoList: Model //todoList에 데이터 들어가있는 상태 self.todoListVM = TodoListViewModel(todoList: todoList) View: ViewController, cell 에 코드작성. 사용자와 상호작용이 일어나면 ViewModel에 알려주고, ViewModel이 요청한 데이터를 보여줌(화면에 전달) ViewModel: MVC에서 ViewController 역할. 상호작용에대한 역할에 걸.. 2022. 3. 2. [CS] Dependency Injection Dependency: 어떤 객체 안에 그객체가 들어있어서 그 객체를 사용하고 있기 때문에 의존성이 생긴다 class A { var name = "lee" } class B { var b = A() } lat na = B() print(na.b.name) Injection: 주입, 이니셜라이제이션 내부가 아닌, 외부에서 객체를 생성해서 넣어주는것 class A{ var name:String? init(name: String){ self.name = name } } class B { var b = A(name:"lee") //내부에서 객체생성 의존성이 높아짐 } let a = A(name:"lee")// 외부에서 객체생성 위 두개 코드를 합치면 의존성 주입: 객체간 결합을 느슨하게 만든다. 좀더 변경이 유연.. 2022. 1. 13. [CS] 프로토콜, 인터페이스 차이 자바 인터페이스 public interface a{ int num = 1; int getNum(); void setNum(int num); } Swift Protocol protocol b{ var num: Int = 1 //오류 func getNum() -> Int optional func setNum(num: Int) } protocol은 var num: Int = 1 에서 오류난다 interface는 변수 초기값 설정이 가능하지만 protocol은 불가능하다 자바에서 클래스가 인터페이스를 상속 받으면 인터페이스 안에 있는 메소드를 모두 구현해야 하지만 swift 에서는 optional 을 이용해서 protocol을 채택해도 구현 하지 않아도 된다 2022. 1. 12. [CS] 함수형 프로그래밍 명령형 프로그래밍(How): 알고리즘을 명시하고 목표명시 X 절차지향 프로그래밍: 코드에 순서에 따라 계산 ex) c, c++ 등등 객체지향 프로그래밍: 각각의 객체에 따라 프로그램이 상호작용을한다 ex) java, c# 등등 선언형 프로그래밍(What): 알고리즘을 명시하지않고 목표명시 O 함수형 프로그래밍: 함수만을 조합해서 소프트웨어를 만든다 함수형 프로그래밍(Functional Programming) 순수함수: 동일 인자를 넣었을때 항상 동일한 결과값을 반환해야한다. 외부에 전혀 영향을 받으면 안된다 //x let a = 1; function add(b){ return a+b; } //o function add(a,b){ return a+b; 비상태, 불변성 (상태(변수)+행동(메소드)=객체지향).. 2022. 1. 12. 이전 1 2 다음