목록분류 전체보기 (178)
한 걸음씩 기록하며
⛏ 문제 파악 최소한의 설탕 봉지를 배달하기 위해서는, 5kg 봉지를 최대한 많이 사용해야한다. N이 5로 나눠지지 않고, 3으로만 나눠지는 경우를 넣어야한다. 3을 빼면서 5로 나눠지는 조건을 걸면 문제 해결이 가능해보인다. 👉🏻 답안 sugar = int(input()) bag = 0 while sugar >= 0: if sugar % 5 == 0: bag += sugar // 5 print(bag) break sugar -= 3 bag += 1 else : print(-1) 📑 간단한 설명 남은 설탕을 기준으로 while을 돌렸다. 설탕이 5로 나누어지지 않는다면, 3kg을 뺐고, 5로 나눠지면 바로 나누어 break로 계산 남은 설탕이 음수가 되면 -1로 리턴
지난 글에서 데이터 모델링에 대한 글을 올렸었다. 오늘은 데이터 모델링의 3단계에서 두 번째 단계인 논리적 데이터 모델링에서 사용되는 ERD에 대해서 정리해보려 합니다. https://haksae.tistory.com/143?category=958700 [Data Modeling] 1. 데이터 모델링 1.1 모델링 일반적으로 "모델링"이란 세상에 존재하는 다양한 사물이나 현상들을 일정한 표기법에 의해 나타내는 것을 의미한다. 모델링의 대표적인 3가지 특징 추상화(모형화, haksae.tistory.com 1. 데이터 모델링 절차 위의 내용에서 언급했던 데이터 모델링 3단게에 근거하여, 데이터 모델링 절차 정리를 간단히 정리하면 다음과 같다. 1) 업무 파악 단계 : 화면에 어떠한 것들이 필요한지에 대한 ..
1. 데이터 모델링 1.1 모델링 일반적으로 "모델링"이란 세상에 존재하는 다양한 사물이나 현상들을 일정한 표기법에 의해 나타내는 것을 의미한다. 모델링의 대표적인 3가지 특징 추상화(모형화, 가설적) 추상화는 현실 세계를 일정한 형식에 맞추어 표현한다는 것을 의미한다. 다양한 현상을 일정한 양식인 표기법에 의해 표현한다. 단순화 복잡한 현실 세계를 약속한 규약에 의해 표기된 표기법이나 언어로 표현하여 현실세계를 보다 쉽게 이해할 수 있도록 한다. 명확화 누구나 이해하기 쉽도록 대상에 대한 애매모호함을 제거하고 보다 정확하게 현상을 기술한다. 1.2 데이터 모델링 데이터 모델링은 사용자의 요구사항으로부터 데이터의 실체를 나타내는 것을 의미한다. 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법 ..
참고문서 1. https://blog.coderifleman.com/2017/12/18/the-clean-architecture/ / 로버트 C.마틴의 The Clean Architecture를 한국어로 번역한 글 2. https://k-elon.tistory.com/38 / 설명 글 3. https://dailyheumsi.tistory.com/239 1. system architecture? 시스템 아키텍처는 시스템의 구조(structure), 행위(behavior), 뷰(views)를 정의하는 개념 모델이다. 시스템의 목적을 달성하기 위한 각 컴포넌트가 어떻게 상호작용하고 정보가 어떻게 교환되는지를 설명한다. → 시스템 아키텍쳐들의 “관심사의 분리(separation of concerns)” 라는 ..
0. 선행지식 CPU : 중앙처리장치 코어(core) : 각종 연산을 하는 CPU의 핵심 요소 (CPU 안에서 일하는 실무진이라 보면 된다..) 프로세서 (processor) : 컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리 회로, 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛 초기의 컴퓨터는 멀티 태스킹이 불가능했다. 그러나 CPU 성능이 개선됨에 따라 Context Switching을 통해서 동시성을 구현하는 것이 가능해졌다. 동시성(Concurrency) : 동시에 실행되는 것 같이 보이는 것 2000년대 초반, 한계치 이상까지 CPU의 쿨럭을 끌어올리던 CPU 제조회사들은 2002년에 3Ghz 쿨럭을 돌파했다. 그러나 이로 인해 발생하는 발열, 엄청난 전력 소모로 인해 CP..
0. 선행 지식 *정적 메모리 할당 - 동적 메모리 할당과 반대되는 개념 - 프로그램이 시작되기 전에 미리 정해진 크기의 메모리를 할당 받는 것을 말함 - 처음에 결정된 크기의 값 만을 처리함 1. 동적 메모리 (Dynamic Memory Allocation) 동적 메모리 할당이란 프로그램이 실행 도중에 동적으로 메모리를 할당 받는 것을 의미한다. 프로그램에서는 필요한 만큼의 메모리를 시스템으로부터 할당을 받아서 사용하고, 사용이 끝나면 메모리를 반납한다. 운영 체제의 힙 영역의 메모리를 할당 받아서 사용한다. 힙 메모리 : 메모리를 프로그램이 실행되는 동안 동적으로 결정하는 경우 사용되는 공간 필요한 만큼만 할당 받고, 반납함으로써 메모리의 효율적 사용, 유연한 관리가 가능하다는 장점이 있다. 운영체제..
0. TLDR EC2로 열어놓은 서버 MongoDB에 접근하는 방법 중 하나(Robo3T 연결) MongoDB에서 계정을 생성하고, 해당 계정이 DB를 관리 1. DB 보안과 접근 서버에 있는 DB를 누구나 접근하면 큰일난다. 그래서 대부분의 DB들은 (MongoDB, MySQL 등) 다음과 같은 기초적인 보안 기능을 제공한다. 그렇다면 어떤 방식으로 DB에 접근할 수 있을까? 대부분 아래의 2가지 방식이다. Whitelist : 허용된 IP만 DB에 접근할 수 있도록 설정하는 방식 계정 : 허용된 사용자만 DB에 접근할 수 있도록 계정을 관리하는 방식 본 글은 2번째 방식인, 계정을 관리하여 접근을 허용하는 방식을 MongoDB에서 구현해볼 것이다. 2. 계정 생성하고 권한 부여하기 참고로 본 글은 아..
0. 환경 변수 (Environment Variables) 환경 변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다. OS의 환경변수는 시스템의 실행 파일이 놓여 있는 디렉토리의 지정 등 OS 상세서 동작하는 응용 소프트웨어가 참조하기 위한 설정이 기록된다. 우리가 집에서만 개발을 한다면 문제가 없겠지만, 우리는 다양한 환경과 OS에서 작업하게 된다. 그렇기 때문에 개발을 함에 있어서 운영 체제 레벨에서 관리하는 환경 변수를, 우리가 직접 설정하고 관리하는 작업이 필요하다. 이것을 위한 모듈이 "dotenv"이다. 1. dotenv dotenv는 일반적으로 .env라는 파일을 만들어서, 환경 변수 및 유출되면 안되는 정보를 담는 방식으로 활용된다. 해당 .env 파일은 원격..