Xcode에서 project template 생성하는 방법

Xcode에서 project template 생성하는 방법 가령 Xcode에서 Storyboard가 없는 프로젝트를 만들고 싶다면, 프로젝트를 생성하고 Main Storyboard를 삭제하고 AppDelegate 혹은 SceneDelegate를 설정하고 info.plist를 설정하는 작업이 필요하다. 이 과정을 매번 하는 것이...

Calendar의 date(bySetting:value:of:) 함수를 이용할 때 주의점

Calendar의 date(bySetting:value:of:) 함수를 이용할 때 주의점 swift에서 날짜를 다룰 때 주로 Calendar struct를 이용하는데 날짜를 1일로 설정하기 위해서 date(bySetting:value:of:)를 이용했다. // 현재 날짜 11월 29일 // 원하는 날짜 11월 1일...

Responder Chain 그리고 Hit Test

마지막 글을 작성하고 1년도 넘었지만 지금이라도 이전 내용을 다시 글로 정리해보려 한다. ㅜ.ㅜ Responder Chain 그리고 Hit Test Point, Hit Test 우선 화면을 터치했을 때 어떤 view(button 등등 포함)를 터치한건지...

Stack Frame

Stack Frame Stack Frame은 함수의 호출 정보들을 저장하기 위한 자료구조이다. 이러한 Stack Frame에는 함수에 필요한 인자, 지역 변수, return address와 같은 정보들이 들어있다. 함수를 호출(call)하게 되면 기존 레지스터에 있던 정보들을...

[번역]main 함수 없이 Hello World 출력하기

이 글은 Executing main() in C/C++ – behind the scene을 번역한 글입니다. main 함수 없이 Hello World 출력하기 어떻게 main 함수 없이 “Hello world”를 출력할 수 있을까? 먼저, main 함수가...

VM Translator

VM Translator - 1 가상 머신 패러다임 컴파일 과정은 상당히 복잡한 프로세스다. 보통 고수준 언어를 대상 기계어로 번역하려면 별도의 컴파일러를 따로 만들어야한다. 따라서 언어와 기계어의 특성에 따라 수많은 컴파일러가 생겨나게...

어셈블러

어셈블러 기호 변환(Symbol Resolution) 기호가 있는 코드를 기호가 없는 코드로 변환하는 방법에는 기호 테이블(Symbol Table)이 있다. 우선, 번역된 코드는 주소 0부터 시작하는 메모리에 저장하고, 변수들은 주소 1024부터 할당하도록 한다(이 규칙은...

CPU와 메모리 만들기

CPU와 메모리 만들기 CPU 우리가 만들 컴퓨터 아키텍처에서 PC칩의 출력에서 나온 선은 ROM 칩의 주소 입력에 연결된다. 여기서 ROM 칩은 PC가 가리키는 명령어 메모리 위치의 값인 ROM[PC]을 계속 출력한다. 이...

컴퓨터 구조

컴퓨터 구조 내장식 프로그램 컴퓨터의 유연성은 내장식 프로그램(Stored Program)이라는 개념에서 비롯한다. 기본적인 아이디어는 컴퓨터는 정해진 명령어 집합들을 실행하는 고정된 하드웨어 플랫폼이라는 아이디어에 기반한다. 동시에 컴퓨터가 실행하는 명령어들은 기본 블록이 되어...

메모리와 명령어

메모리와 명령어 메모리 주소 공간 폰 노이만 구조에서는 주소 공간이 명령어 메모리(Instruction Memory)와 데이터 메모리(Data Memory)라는 두 부분으로 분리되어 있다. 또한 주소 공간의 크기는 CPU의 주소 버스의 크기에 따라 정해진다....