본문 바로가기

분류 전체보기12

Android MVP 아키텍처 계층 나누기 소프트웨어를 Model, View, Presenter의 계층으로 분리합니다. Model 로컬 데이터베이스 관리, 네트워크 통신을 통해 데이터와 관련된 작업을 처리합니다. View Android UI 작업을 처리합니다. UI 작업에는 화면을 그리거나, 애니메이션, 버튼 클릭, 스크롤, 스와이프 등 사용자 상호작용 이벤트를 받는 일이 있습니다. Presenter View와 Model의 중간에서 행동합니다. Veiw에게 이벤트를 받아 처리합니다. 처리하기 위해서 필요한 데이터를 Model에게 요청합니다. 분리 일관된 요소끼리 계층을 나누어 응집도를 높이고, 각 계층의 변경이 댜른 계층에 영향이 미치지 않도록 합니다. MVP는 프리젠테이션 계층을 View와 Presenter로 분리했습니다. View.. 2021. 10. 30.
[c++] Reference c로 프로그램을 작성하다가 c++로 넘어왔는데, c++에서는 c에서 쓰던 pointer 사용보다 reference의 사용을 권장하는 경우가 많았습니다. Reference ? reference 변수 #include intmain( void ) { std::stringa = "HI THIS IS BRAIN"; std::string&stringREF = a; // Reference 변수 std::cout 2021. 9. 21.
c로 식사하는 철학자 문제 풀기 #프로세스 #스레드 #뮤텍스 #세마포어 #데드락 #임계영역 5명의 철학자가 원탁에 앉아있습니다. 철학자들은 다음 작업을 반복합니다. 포크 들기 -> 식사하기 -> 포크 내려놓기 -> 잠자기 -> 생각하기 철학자는 포크 2개로 식사하고 원탁에 포크는 철학자 수만큼 존재합니다. 이때 포크 위치는 1. 철학자 양옆 2. 원탁 가운데 바구니 각 두가지 경우를 가정해 프로그램을 작성합니다. 1. 철학자 구현하기 철학자 5명은 각자 작업을 동시에 반복합니다. 작업을 동시에 실행하기위해 프로세스 또는 스레드를 구현합니다. 프로세스 위키백과에서 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이라고 정의했습니다. 또한 컴퓨터 프로그램은 위키백과에서 명령어들의 모음이라고 정의했습니다. 종합해보면 컴퓨터에서 .. 2021. 7. 27.
C언어 데이터 타입의 크기 C언어 데이터 타입의 크기는 컴파일러의 옵션에 따라 달라질 수 있습니다. 요즘 컴퓨터는 대부분 64bit 인데, 컴파일러의 기본 세팅은 32bit에 맞춰서 컴파일됩니다. 그게 가능한 이유는, 64bit에서 32bit 하위호환이 가능하기 때문입니다. 대체적으로 우리가 사용하는 컴퓨터에는 인텔이나 AMD의 cpu를 사용하는데, 이것들을 x86 아키텍쳐라고하고, x86아키텍쳐의 64bit 판이 x86_64 입니다. x86_64 아키텍쳐는 하위호환이 가능해서, x86_64 아키텍쳐에 64bit 운영체제여도, 32bit 연산이 가능합니다. Type Size Range char 1 byte [-127, +127] signed char 1 byte [-127, +127] unsigned char 1 byte [0, .. 2020. 11. 23.