CleanCode 02 의미있는이름

소프트웨어 이름은 변수, 함수, 인수, 클래스, 패키지, 소스코드, 디렉터리, jar, war 등 여러 이름을 붙입니다. 이번 장에서는 이름을 잘 짓는 규칙을 알아보도록 하겠습니다. 1. 의도를 분명히 밝혀라 의도가 분명하게 이름을 지으라 라고는 말하기는 쉽지만 생각보다 이름을 짓는것은 쉽지 않다. 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 시간

프로그래머스 가장 큰 정사각형 찾기

1. 프로그래머스 가장 큰 정사각형 찾기 1.1. 컴퓨팅적 사고 보드에서 0인 경우를 제외한다. 0인 경우에는 어떠한 정사각형도 만들 수가 없기때문이다. 따라서, 대각선(i-1,j-1), 위(i-1,j), 왼쪽(i,j-1)의 위치의 값중 최솟값 +1의 값을 주게해주는데 왜 이러한 값을 구해주는 것일까 잘 생각해보도록 합니다. 가장 최소가되는 값의 +1

프로그래머스 쿼드 압축후 개수 세기

1. 쿼드압축 후 개수 세기 1.1. 컴퓨팅적 사고 가장왼쪽위의 좌표를 기준으로 현재 탐색하고자 하는 정사각형의 한변의 길이를 통해서 탐색합니다. 가장 왼쪽지점을 기준으로 처리합니다. 분할 후도 같게 생각합니다. 3가지 경우의수: 특정 범위가 모두 '0’인 경우, 특정 범위가 모두 ‘1’ 인경우, 그게 아닌경우를 찾아냅니다. 이것들을 DFS로 처리하여

CleanCode 01 깨끗한코드

1. 코드가 존재하리라 코드는 요구사항을 표현하는 언어라는 사실을 알아야하고 요구사항에 더욱 가까운 언어를 만들수도 있고, 요구사항에서 정형 구조를 뽑아내는 도구를 만들 수도 있다. 하지만 어느순간에는 정밀한 표현이 필요하다. 2. 나쁜 코드 좋은 코드의 중요성은 오랫동안 나쁜 코드에 시달려왔다. 출시에 바빠 코드를 마구짜지 말아야 한다. 회사가 망하는

릿코드 Partition Labels

1. partition labels 1.1. 컴퓨팅적 사고 (1)LastIdx[알파벳을 아스키코드로 표현된 값] = 현재 위치의 값을 구해줍니다. 예) ‘c’ 일 경우 LastIdx[‘c’-‘a’=2] = 현재 위치(i) (2) S문자열을 모두 수행하면서 나오는 알파벳들의 위치와 비교하여 최대로 위치해있는 인덱스값을 구해줍니다. (3) 만약 S문자열값을

03 클라우드네이티브의 이해(CI/CD, Docker, Container)

1. 클라우드 네이티브(Cloud Native)란? 클라우드 환경에서 Application, Architecture, Infrastructure 등의 환경을 뜻합니다. 클라우드 네이티브 애플리케이션은 환경 변화에 민첩하고 능동적으로 대응하기 위해서 네이티브 환경에서 Saas(Software as a service)나 Faas(Function as a Se

Network Header 개요 및 쿠키 세션

1. HTTP 헤더 HTTP 헤더의 구성은 다음과 같이 구성됩니다. header-field = field-name “:” OWS field-value OWS 보통 fieldname은 대소문자 구분을 따로 하지않으며 OWS(optional whitespace)는 띄어쓰기를 허용시킵니다. reference RFC7230 HTTP RFC7230 Requ

프로그래머스 외벽점검

1. 프로그래머스 외벽점검 1.1. 컴퓨팅적 사고 (1) 취약점의 출발지를 설정하고 취약지점을 평면으로 생각하여 해당 N범위를 넘어갈 것을 대비하여 취약지점+N까지 값들을 넣어줍니다. (2) 출발점과 다음 취약점의 거리가 사용 가능한 친구의 시간보다 크면 더이상 진행할 수 없는것이므로 다음값으로 갱신하여 진행 즉, 현재 친구의 시간으로 모든 외벽을 점검

프로그래머스 야근지수

1. 프로그래머스 야근 지수 Level03 1.1. 컴퓨팅적 사고 priorityQueue를 사용하여 가장 야근이 많은것부터 하나씩 처리합니다.1시간당 1의 일을 소모하니 가장높은것부터 -1을 처리해줍니다. TestCase03의 경우 처리한값중에 -1 0보다 작은 값이 존재할 경우 가장 최솟값이 0이되기 때문에 조건을 걸어 해당 로직을 빠져나오게 하였

OS 트랜잭션(transaction), 격리수준(Isolation Level)

1. Transaction(트랜잭션) 트랜잭션의 성질 원자성(Atomicity) 한 트랜잭션 내에서 실행한 작업들을 하나로 간주한다. 즉, 모두 성공 또는 실패를 뜻합니다. 일관성(Consistency) 트랜잭션은 일관성 있는 데이터베이스 상태를 유지합니다. (Data Integrity) 격리성(Isolation) 동시에 실행되는 트랜잭션들