- [ Computer Science ][CS] Transaction2025-02-09 11:09:25Transaction이란?Transaction은 질의(query)를 통해 데이터베이스의 상태를 변화시키는 수행의 작업 단위를 뜻한다.Transaction는 하나의 질의어(SQL)가 아닌 사용자의 기준에 따라 여러 질의어 작업을 하나로 묶은 실행 유닛이다.데이터베이스 관리 시스템(DBMS)의 성능은 초당 트랜잭션의 실행 수로 측정된다.ACIDDB Transaction이 안전하게 수행되는 것을 보장하는 4가지 성질Atomicity(원자성)원자성은 트랜잭션이 데이터베이스에 모두 반영되거나, 반영되지 않아야 하는 것을 말한다.이는 트랜잭션이 부분적으로 실행되거나 중단되지 않는 것을 보장한다.중간에 문제가 생길 경우 이전 commit 내용 상태로 rollback한다.다만, 확실한 경우 트랜잭션 중간에 세이브포인트..
- [ Computer Science ][CS] 네트워크 7계층2025-02-09 11:08:20네트워크 7계층OSI 7계층OSI 7계층은 국제 표준화 기구 ISO(International Standardization Organization)에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델이다.통신이 이루어지는 과정을 7단계로 나누고 각 계층 간 상호 작동하는 방식을 정해둔 것 이미지 출처 - http://wiki.hash.kr/index.php/OSI_7계층각 계층은 서로 독립적으로 구성되어 있고, 각 계층은 하위 계층의 기능을 이용하여 상위 계층에 기능을 제공한다.네트워크 통신 시 데이터는 각 계층을 지나며 하위 계층은 상위 계층으로부터 온 정보를 데이터 취급하고, 자기 계층의 특성을 담은 제어 정보를 헤더화시켜 붙이는 과정이 발생하는데 ..
- [ Computer Science ][CS] TCP/IP 5계층2025-02-08 17:38:47TCP/IP 5계층TCP/IP 5계층이란?OSI 7 Layer가 데이터 통신 과정을 7개 계층(Layer)로 분류한 이론적인 모델이면, TCP/IP 5계층은 데이터 통신에 실질적으로 사용되는 프로토콜 스택이다. 근래 4계층에서 5계층으로 바뀌었다고 한다.TCP/IP(suite of protocols that specify communications standards)는 프로토콜 모음을 계층화했다는 의미라고 한다. 근데 왜 이름이 약자가 아니라 TCP와 IP를 묶어서 칭하나 했더니 프로토콜 모음들 중 가장 대표적인 프로토콜(중심적인)이라 그렇게 이름 붙여졌다고 한다.TCP/IP 계층 별 특징Application Layer프로그램 구현체(응용 프로그램)과 사용자 인터페이스를 의미한다.OS 제공하는 4 L A..
- [ UIKit ][UIKit] Hugging Priority&Compression Resistance Priority2025-02-08 17:36:07문제상황네이버 웹툰 메인 페이지 UI를 따라만들어 보던 중에, 작가명과 작품 평점을 스택으로 묶어서 관리하였더니 위 사진처럼 앞에 작품 평점이 ...으로 간략화되거나 작가명이 ...으로 간략화되는 문제가 발생했다.해당 스택의 distribution(분포)를 Fill로 설정하였고 너비가 이미지 너비만큼으로 고정되어있다보니 랜덤으로 우선순위가 적용되는 듯 하였다.이에 해당 스택에 포함된 레이블들의 우선순위를 정해줘야 했다. 내가 원하는 우선 순위는 작품 평점 레이블 >> 작가명 레이블로 작품 평점을 무조건 보이도록 하려고 했다.문제해결size inspector에는 이를 해결할 수 있는 수단이 존재하는데바로 Content Hugging Priority와 Content Compresstion Resistance..
- [ UIKit ][UIKit] Bounds와 Frame의 차이2025-02-08 17:34:18Bounds와 Frame의 차이View의 위치나 크기를 확인하는 방법은 Bounds와 Frame 프로퍼티를 사용하는 것이다.둘 다 View 위치나 크기를 확인할 수 있는데 왜 구분해두었는지 알아보자.차이점두 프로퍼티의 차이점은 위치값이 상대적인지 절대적인지의 차이이다.예를 들어 아래 뷰가 있다고 가정해보자.FrameFrame은 superView에 대한 상대적인 위치(좌표값)을 가지게 된다.superView의 왼쪽 모서리를 (0,0)으로 기준으로 두었을 때, Frame은 (0,0)으로 부터 얼마만큼 떨어졌는지에 대한 좌표값을 가지게 된다.View의 Frame.origin은 (55,68)을 가지게 된다.BoundsBounds는 Frame과 다르게 절대적인 자신만의 좌표값을 지니게 된다.즉 본인의 위치가 곧 ..
- [ Swift ][Swift] Any와 AnyObject의 차이2025-02-08 17:27:51Any와 AnyObject의 차이Swift에는 Any와 AnyObject라는 타입이 존재한다. 단어에서 알 수 있듯 어떤 타입이든 저장할 수 있을 것만 같다.AnyAny는 모든 타입에 대한 인스턴스를 담을 수 있다. 여기서 모든 타입은 클래스, 구조체, 열거형 모든 타입을 포함한다.var temp: [Any] = [0, 0.1, "가나다", true, { (a: Int,b: Int) -> Int in return 1}]위와 같이 Int, Float, String, Bool, Closure 등 타입에 상관없이 모든 타입을 설정할 수 있다.모든 타입을 저장할 수 있기 때문에 컴파일 시에는 어떤 타입을 요소로 가지고 있는지 알 수 없다. 런타임 시 결정되어 해당 타입의 멤버에 접근할 수가 없다.편리한듯 불편한..
- [ Swift ][Swift] ARC2025-02-08 17:26:40ARC(Automatic Reference Counting)란?swift는 ARC(Automatic Reference Counting)를 통해 앱의 메모리를 관리한다. ARC는 어떤 클래스의 인스턴스가 필요하지 않을 때 자동으로 참조 카운트를 체크하여 인스턴스에 할당된 메모리를 해제하여 관리하는 시스템이다.우선 모르는 단어가 투성이다. 인스턴스, 참조, 메모리 등...메모리 영역우선은 프로그램의 메모리 영역에 이해가 필요할 것이다.프로그램이 실행되면 RAM에서 해당 프로그램의 메모리가 할당되어 사용할 수 있게 된다.그렇게 할당받은 메모리는 총 4개의 영역으로 구분된다.코드(Code) - 코드가 입력되는 부분데이터(Data) - 전역 변수힙(Heap) - 동적할당변수스택(Stack) - 지역 변수, 파라미..
- [ 코딩테스트/프로그래머스 ][프로그래머스] 타겟 넘버(Swift)2024-08-22 16:45:45난이도: Level 2 사용 알고리즘: DFS index를 돌면서 모든 경우의 수들 중 sum이 target과 일치하면 되는 문제였다.그림(못남)처럼 dfs로 모든 경우의 수를 따라가도록 하였다. import Foundationfunc solution(_ numbers:[Int], _ target:Int) -> Int { var count = 0 func dfs(idx: Int, sum: Int) { if idx == numbers.count && sum == target { count += 1 return } if idx + 1