분류 전체보기 (207) 썸네일형 리스트형 HTTP 메서드 뭐라고? GET에 Body가 있다고? 28기 SOPT를 뒤흔들었던 사건이 있다 .. 오무렌 .. 비움 .. 캐치미 팀에서 동시다발적으로 일어난 그 사건을 우리는 'GET에 Request Body가 있다면?'이라고 부르기로 했다 .. 결론은 (따지고 보면 가능하지만) 안된다. 안돼요. 아 되었는데? 아니 안돼요. 그냥 안돼요. .. 서론이 길었음 ;; HTTP API 예를 들어서 회원정보관리 API를 만든다고 생각해보자. 그러면 아래와 같은 목록을 만들어야겠지?! 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 그리고 아래와 같이 API URI를 설계할 수 있을 것임.. 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-memb.. [질문] 프로세스, 쓰레드 프로세스 및 쓰레드 관련 질문 프로세스와 쓰레드의 차이는 무엇인가요? 프로세스는 컴퓨터에서 실행 중인 프로그램을 말하고 고유한 공간과 자원을 할당 받아서 사용한다. 반면에 쓰레드는 프로세스 안에서 실행되는 여러 흐름의 단위로 프로세스 내의 자원을 공유하고 고유한 스택만을 각자 할당 받는다. 스택을 스레드마다 독립적으로 할당하는 이유는 무엇인가요? (= 스레드가 스택만 공유하지 않는 이유는 무엇인가요?) 스택은 함수 호출시 전달되는 인자, 복귀 주소값 및 함수 내에서 선언하는 변수 등을 저장하기 위해 사용되는 메모리 공간이다. 스택 메모리 공간이 독립적이라는 것은 독립적인 함수 호출이 가능함을 의미하고 이는 독립적인 실행 흐름이 추가된다는 것을 의미한다. 그리고 쓰레드는 프로세스 내의 흐름의 단위, 작업의.. 시스템 콜과 인터럽트 시스템 콜 운영체제의 커널이 제공하는 서비스에 대해서 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스 (.. 말이 조금 어려운데 응용 프로그램이 커널의 서비스에 접근할 때 마주하는 인터페이스라고 생각하면 된다.) 기능 시스템 콜의 주요 세가지 기능은 아래와 같다. 사용자 모드에 있는 응용 프로그램이 커널에 접근하여 그 안의 기능을 사용할 수 있도록 한다. (= 운영체제 서비스에 접근할 수 있게 한다.) 시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다. 커널에서 시스템 호출의 작업이 끝나면 사용자 모드로 돌아간다. 여기서 말하는 사용자 모드는 사용자가 프로그램 실행, 코드 작성 등을 하는 상태를 말한다. 커널 모드는 시스템 콜을 처리하는 상태를 말한다. 사용자 모드 : 사용자, 프로그램.. 프로세스 - 상태 우리가 컴퓨터를 할 때 카톡을 하면서 유튜브도 보고 게임을 할 수 있는 이유는 여러 개의 프로세스가 실행되고 있기 때문이다. (동시에 실행되고 있는 것처럼 보이지만 정확하게 동시에 실행되는 것은 아니다.) 이렇게 실행되고 있는 프로세스들은 Life Cycle은 위와 같다. new 프로세스를 생성하고 있는 단계로 커널 공간에 PCB가 만들어진 상태 ready 프로세스가 메모리에 적재된 상태로 실행하는데 필요한 자원을 모두 얻은 상태 running 프로세스가 CPU를 할당 받아 명령어를 수행 중인 상태 일반적으로 CPU가 하나이기 때문에 여러 프로세스가 동시에 실행되어도 실제로 실행 중인 프로세스는 매 시점 하나 뿐이다. blocked 현재 프로세스가 I/O 작업 등을 처리 중인 상태 *blocked? 프로.. 쓰레드 지난 시간) 프로세스는 디스크에 존재하는 프로그램이 메모리에 올라가서 CPU를 할당 받은 실행 중인 프로그램을 의미 이 프로세스와 함께 다니는 것 = 쓰레드 쓰레드란? 어떤 프로그램 내에서 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 프로세스가 CPU로부터 할당 받은 자원을 이용하는 실행의 단위이다. 🤔 실행의 단위? 하나의 일을 하는 단위를 말한다. 쓰레드가 생성되면 Stack 영역만 할당 받고 (= 공유하지 않는다.) Data, Code, Heap 영역을 프로세스의 자원과 공유하게 된다. 🤔 쓰레드는 프로세스와 어떤 차이점을 가지고 있을까? 여러 개의 프로세스가 있을 때 각각의 프로세스는 독립적인 메모리 영역을 가진다. 반면에 쓰레드는 다른 쓰레드와 프로세스의 Stack을 제외한 Data, .. 프로세스 - 개념, 메모리 구조, 상태변화 프로세스 .. 개념 하나 설명하려면 조금 한바가지임 .. 그래서 조금씩 나눠서 해보겠음 ~ .. 프로세스란? 실행 중인 프로그램을 의미 (= Program In Execution) 중요한 포인트는 실행 중이다. 라는 것 저장 장치에 들어 있는 구글은 그냥 프로그램, 이를 두번 클릭해서 실행이 되면(= 인스턴스화) 프로세스가 된다. 이 프로세스에게 CPU가 넘어가고 .. 하는 것 프로세스의 메모리 구조 스택 / 힙 / 데이터 / 코드 구조로 메모리가 나뉘어진다. 스택은 위 주소부터 할당이 되고, 힙은 아래 주소부터 할당이 된다. 스택 지역변수 / 매개변수 / 함수가 저장 컴파일 시 크기가 결정 동적 함수가 함수를 재귀적으로 호출하면서 동적으로 크기가 늘어날 수 있음, 이 때 다른 메모리 영역인 힙과 영역이.. 셀의 재사용 메커니즘 개킹받는 것임 UITableView / UICollectionView를 사용하는 가장 큰 이유는 Cell을 재사용함으로써 보다 효율적으로 UI 및 데이터 관리를 할 수 있기 때문이다. 그런데 이 셀을 사용하다보면 재사용하는 과정 속에서 UI가 업데이트 되는 것과 데이터가 업데이트 되는 것의 차이가 생겨 원하는 모습으로 업데이트가 되지 않는 것을 확인할 수 있다. Cell의 Life Cycle과 재사용 메커니즘을 잘 이해하고 있어야 하는 이유도 여기에 있다. .. 그래서 이 글에서 셀의 생애주기와 재사용 메커니즘에 대해서 정리할 것임 .. (아 이거 진심 .. 매번 해도 매번 모르겠음 .. >< .. ) Life Cycle UI를 그려보자. 먼저 간단하게 UITableViewCell을 하나 만들고 UITa.. Realm에 Repository Pattern을 곁들인 기깔난 제목을 쓰고 싶은데 생각이 안남. ㅈㅅ. 나도 그만 곁들이고 싶음. 여러 ViewController에서 Realm의 테이블에 접근하여 CRUD를 할 수 있다. (아마 대부분의 앱이 그렇게 동작이 될텐데) 이 때마다 새롭게 변수를 선언해서, CRUD 코드를 작성하는 것은 효율적이지 못하다. 그러므로 Repository Pattern을 적용해서 코드를 개선할 수 있다. Repository Pattern 패턴을 적용하기 전에, 무슨 패턴인지/어떤 패턴인지 먼저 알아보도록 하자. 이 패턴은 주로 MVP, MVVM 구조에서 많이 사용한다. 프로그램의 핵심인 비즈니스 로직이 얼마나 잘 짜여졌는지에 따라서 결과가 다르게 나온다. 이 비즈니스 로직은 보통 외부 데이터베이스나 앱 내 데이터베이스에 접근하게 되는데.. 이전 1 ··· 13 14 15 16 17 18 19 ··· 26 다음