CS 4

[CS] MVC 와 MVVM 아키텍처

더보기더보기이 포스트는 활동하고 있는 동아리 내에서 공부한 뒤, 작성하였습니다.이번 포스트에서는 아키택쳐 패턴에 대해서 알아 보겠습니다.태초의 프로그래밍은 규격 없이 순차적으로 코드를 작성하는 방식이라 디자인 아키텍처들과 프로그래밍 언어나 프로젝트에 따라 코드 작성 시 지켜야 할 규칙이나 스타일이 존재하지 않았습니다.하지만 현재는 디자인 패턴과 객체지향 프로그래밍, 함수형 프로그래밍의 발전으로 구조적 안정성이 높아졌습니다. 이로 인해 복잡한 시스템을 효과적으로 설계할 수 있게 되었지만, 이러한 새로운 개념들을 배우는 과정에서 러닝 커브가 발생하게 됩니다. 그렇다면 아키텍처 패턴이란 무엇일까요?이는 소프트웨어 시스템의 구조와 구성 요소 간의 상호작용을 정의하는 고수준의 설계 원칙을 의미합니다. 이러한 패턴..

CS 2024.12.01

[CS] 인덱스(Index)

더보기이 포스트는 활동하는 동아리 내에서 공부한 내용을 통해 작성되었습니다.이번 포스트에서는 인덱스와 세 가지의 트리 구조에 대한 내용으로 구성해 보았습니다.들어가기에 앞서 제일 먼저 인덱스의 정의에 대해 간단하게 설명해 보겠습니다.인덱스란 무엇일까요? # 인덱스인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여 주는 자료 구조로 정리해 볼 수 있습니다.인덱스를 생성하게 되면 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장할 수 있습니다.이러한 인덱스가 필요한 이유는 무엇일까요? 데이터베이스에서 인덱스는 데이터 검색 성능을 향상시키는 역할을 합니다.데이터를 조회하고 싶을 때 컴퓨터는 모든 행을 순회하며 조건에 부합하는 값을 찾아나가게 됩니다.하지만 인덱스가 존재시 전체..

CS 2024.10.10

[CS] 자료구조

더보기활동하는 스터디 내에서 공부하여 따로 작성한 포스트입니다.저번 CS 포스트에서 스택과 힙에 대해 간단하게 설명을 해 보았습니다.이번 포스트에서는 자료구조에 대해 자세히 알아 보겠습니다.아홉 가지의 자료 구조를 정리해 보기 전에 먼저 자료구조가 무엇인지 작성해 보겠습니다. # 자료구조우리는 연산을 해야 되는 정보의 양이 한정적이지 않습니다. 반면에 컴퓨터는 한정적입니다.그렇다면 방대한 양의 정보를 연산하기 위해서는 어떻게 해야 될까요?처리하는 데이터의 크기가 커지면 커질 수록 메모리는 증가합니다.그러므로 데이터를 효율적으로 저장하고 관리하는 방법인 자료 구조를 통해 효율적인 처리를 가능하게 해야 됩니다. 데이터의 조직화 방식에 따라 다양한 자료 구조가 있으며, 각 자료 구조는 특정 용도와 성능에 따라..

CS 2024.10.04

[CS] 프로세스 메모리

더보기활동하는 동아리 내에서 공부하여 따로 작성한 포스트입니다. # 프로세스 이번 포스트에서는 프로그램을 실행할 때 코드가 어떻게 돌아가는지 운영 체제에 대해 알아보겠습니다.들어가기 전에 프로세스에 대해 간단히 알아보겠습니다. 프로세스란? 실행되고 있는 프로그램을 의미합니다. 프로세스 내부에는 최소 하나의 스레드를 가지고 있으며, 실행하기 위해서는 메모리 할당이 이루어집니다. 각 메모리 공간을 시스템으로부터 할당받으며, 할당된 메모리 공간으로 바이너리 코드가 올라가게 됩니다. 즉, 운영체제는 프로세스를 작업 단위로 보고 작업들을 적절하게 분배하는 역할을 해 주는 것입니다. # 프로세스 메모리 구조 다음으로는 프로세스 메모리 구조에 대해 알아보겠습니다.밑에는 메모리 구조를 간단히 표로 작성해 본 것입니다...

CS 2024.09.14