목록전체 글 (268)
091
1. JMM(Java Memory Model) - Java Memory Model(JMM)은 멀티스레드 환경에서 메모리의 변경 사항이 각 스레드에 어떻게 보이는지, 그리고 여러 메모리 연산 사이의 순서 관계가 어떻게 보장되는지를 정의하는 Java의 메모리 모델입니다. 멀티스레드 환경에서는 여러 스레드가 동시에 실행되며, 실제 실행 과정에서는 CPU와 메모리 시스템의 특성 등에 의해 한 스레드의 메모리 연산이 다른 스레드에서 동일한 방식으로 즉시 관찰된다고 단순하게 가정할 수 없습니다. 따라서 Java는 멀티스레드 환경에서 메모리 접근의 가시성과 연산의 순서 관계를 정의하기 위한 규칙으로 JMM을 제공합니다. Race Condition(경쟁 상태)1. Race Condition- 레이스 컨디션이란 둘 이..
1. Race Condition- 레이스 컨디션이란 둘 이상의 실행 흐름이 동일한 상태에 동시에 접근하고, 그 결과가 실행 순서에 다라 달라지는 상황을 의미합니다. 예를 들어 설명해보겠습니다. increment() 함수를 스레드 A,B 에서 동시에 실행했다고 봤을 때, 기대한 결과는 count가 2가 되는 것이지만, 실제 결과는 1입니다.즉, 여러 실행 흐름이 동일한 변경 가능한 상태를 공유하면서, 연산이 서로 간섭할 수 있기 때문에 결과가 실행 순서에 따라 다르게 나올 수 있습니다. 그렇다면 이러한 문제는 왜 발생하는 걸까요? 바로 각 연산이 원자적으로 하나의 작업으로 처리되지 않기 때문입니다. *스레드(Thread)란 하나의 프로세스(실행 중인 프로그램) 내에서 운영체제가 CPU에 할당하여 처리하는..
1. Record - Record란 불변성(Immutability)을 보장하는 데이터 캐리어(ex. DTO 또는 VO)를 명확하게 간결하게 정의하기 위한 특수한 형태의 클래스입니다. -> Record를 선언하면 내부에서 아래의 3가지 작업을 수행합니다.(1) java.lang.Record를 상속하기 때문에 다중 상속이 불가하고, 인터페이스 구현은 가능합니다.(2) Record 클래스 자체와 내부에 선언된 모든 필드는 private final로 선언됩니다.(3) 상태를 모두 포함하는 표준 생성자, 필드명과 동일한 이름의 접근자 메서드(getFieldName()가 아니라 fieldName() 형식), 내부 상태를 기반으로 한 equals(), hashCode(), toString()의 메서드가 자동으로 생성..
1. 분류분석 이론- 분류 분석이란 그룹이 알려진 데이터로 학습 후 새로운 데이터가 어느 그룹인지 예측하는 지도 학습의 일종입니다. -> 분류(Classification)는 학습단계와 분류(실전)단계로 구성되어있으며 분류된 학습 데이터를 가지고 분류안된 새로운 데이터를 분류합니다. 그룹(group,class)의 형태로 알려진 데이터들이 있을 때 그룹을 모르는 어떤 데이터에 대해 어느 그룹에 속하는지를 예측하는 기술입니다.-> 군집(Clustering)은 여러 개의 독립변수들을 활용해 유사한 특징을 가지는 개체들을 몇 개의 군집으로 집단화시키는 방법입니다. 분류된 학습 데이터가 없으므로 두 점간의 거리를 이용하여 군집을 분류합니다. 주어진 대상 데이터들을 유사성이 높은 것끼리 묶어주는 기술로, 묶음을 군집..
1. 상세보기 개념 - 화면 전환을 하는 방법에는 다양하지만, 이 글에서 사용할 방법은 네비게이션 컨트롤러와 Action Segue를 사용하여 화면전환(push)합니다. 이 컨트롤러를 사용하여 화면이 전환되고 Navigation Stack에 쌓입니다. 저번 글에서 Stack View를 넣었던 메뉴를 눌러 Navigation Controller를 embed in 해줘야합니다. -> root view controller는 UIWindow의 가장 첫 번째, 최상위 뷰 컨트롤러, 앱이 실행될 때 처음 사용자에게 보여지는 메인 뷰 컨트롤러를 말합니다. 아무 VC나 될 수 있으며, UINavigationController, UITabBarController와 같은 컨테이너 뷰 컨트롤러가 주로 루트로 사용됩니다.Se..
1. AutoLayout - AutoLayout이란 화면 크기가 다른 iOS 기기에서 UI가 잘 보이도록 위치와 크기를 조건으로 지정해주는 레이아웃 시스템입니다. 구현하는 방법에는 스토리보드, NSLayoutConstraint 코드, NSLayoutAnchor 코드, SnapKit 라이브러리, SwiftUI 등이 있습니다.-> Interface Builder(스토리보드)는 그래픽 툴로 마우스 드래그/클릭으로 제약조건을 설정하는 방식입니다. 장점은 쉽고 직관적이라 입문자에게 적합하지만, 단점으로는 복잡한 레이아웃/동적 동작에는 제약이 크며 Merge 충돌 등이 있습니다. 실무에서는 사용 빈도가 적지만 간단한 화면 등에서는 종종 사용됩니다. - 오토레이아웃의 개요는 디바이스들의 변화에 맞도록 UI를 변경하..
1. 알고 가야하는 키워드: REST, RESTful, Open API, JSON 구조 - REST(REpresentational State Transfer)는 HTTP 기반의 소프트웨어 아키텍처 스타일로, 웹에서 정보를 주고받는 방법입니다. 이 아키텍처 설계 지침을 따르는 웹 서비스를 RESTful이라고 합니다. 더 자세한 내용은 아래 글을 참고하면 됩니다. REST 아키텍처 & HTTP 메세지1. REST(Representational State Transfer) - REST는 분산 하이퍼미디어 시스템(ex: 웹)을 위한 소프트웨어 아키텍처의 한 형식으로, 시스템의 모든 것을 자원(Resource)으로 규정하고, 이 자원의 상태를 JSON/XML 등in-ouput91.tistory.com- API(..
1. 데이터 포맷 - CSV(Comma-Separated Values)는 쉼표로 값을 구분하는 텍스트 포맷입니다. 구분자는 쉼표가 기본이지만, 탭(tsv), 세미콜론을 쓰기도 하며, 첫 번째 행에는 컬럼명을 쓰는게 관례입니다.id,name,email,age1,홍길동,hong@example.com,252,김철수,kim@example.com,303,이영희,lee@example.com,28-> 2차원 평면 데이터만을 표현할 수 있기 때문에, 상세 정보가 있는 복잡한 계층구조(1:N 관계)를 CSV 하나에는 도저히 깨지지 않게 담을 방법이 없었습니다. - XML(eXtensible Markup Language)은 태그로 데이터의 의미와 구조를 함께 표현하는 포맷으로, 태그가 중첩되면서 계층 구조를 표현합니다..
