전체 글 32

2. 데이터입·출력 구현 - 핵심 내용 정리

데이터 베이스 개요 1. 데이터 저장소 데이터를 논리적인 구조로 조직화(논리 데이터 저장소) or 물리적인 공간에 구축(물리 데이터 저장소) - 논리 데이터저장소 : 데이터 간의 연관성, 제역조건 등을 논리적인 구조로 조직화 한 것 - 물리 데이터 저장소 : 논리 데이터 저장소를 실제 저장장치에 저장한 것 2. 데이터베이스 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 사용할 수 있도록 운영하는 운영 데이터 데이터 베이스 설계 해당 설계가 개념적, 논리적, 물리적 중 어떻것인지만 구분할 수 있으면 문제해결 가능 1. 설계시 고려사항 - 무결성 : CRUD 중에도 데이가 제약조건을 벗어나면 X - 일관성 : 저장된 데이터나 DB의 응답값이 '일정'해야한다. - 회복 : 장애 발생 ..

1. 요구사항 확인 단원 - 핵심 내용 정리

요구사항 이란? 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건 위의 정의는 우리가 한번에 받아들이기에는 너무 어렵기 때문에 요구사항의 유형 들을 통해 이해해보겠습니다. 요구사항의 유형은 크게 4가지로 요약됩니다. - 기능 요구사항 - 비기능 요구사항 - 사용자 요구사항 - 시스템 요구사항 각각을 나누어서 이해하는 것보다 기능-비기능, 사용자-시스템으로 짝 지어서 이해하면 좋습니다. 소프트웨어 or 시스템의 기능에 집중한 요구사항이면 기능 요구사항, 시스템의 품질이나 제약사항(성능, 보안 등)에 집중하면 비기능 요구사항 입니다. 기능 요구사항 비기능 요구사항 기능에 집중 품질, 시스템 제약사항에 집중 - 시스템 입,출력 - 시스템 필수수행 기능 ..

프로그래머스/Lv.2/가장 큰 수

문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 numbers return [6, 10, ..

프로그래머스/Lv2/[1차] 캐시

문제 설명 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. 입력 형식 캐시 크..

프로그래머스 코딩테스트 입문 완료(머쓱이 스탬프!!!!!!)

만약에라도 아직 코딩테스트 입문 전이신 분들이 이 글을 보셨다면 1번 크롬 확장 프로그램인 백준허브를 깔아서 깃허브에 푼 문제를 자동으로 백업하세요. 2번 문제 풀기 전에 mdn을 통해서 indexOf,map,foreach,reduce 등의 메소드와 정규 표현식을 꼭 공부하시고 문제 푸세요. 3번 가능하면 달력 순서로 푸시는 것이 좋습니다. ▶밑으로는 저의 일기 오늘 기준으로 프로그래머스 Lv0 문제를 전부 다 풀었다. 한 달 조금 넘는 시간 동안 머쓱이 스탬프를 받고 싶은 마음에 꾸준히 풀었다. 전반적으로 메소드 사용에 익숙해질 수 있는 문제들이 많았던 것 같다. 대체적으로 변수 선언 포함 10줄이 넘어가는 코드들이 많지는 않았다. 나는 현제 프론트엔드 지망이기에 JavaScript로 문제를 풀었다. ..

프로그래머스/Lv0/겹치는 선분의 길이

문제 설명 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요. lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다. 선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다. 제한사항 lines의 길이 = 3 lines의 원소의 길이 = 2 모든 선분은 길이가 1 이상입니다. lines의 원소는 [a, b] 형태이며, a, b는 각각 선분의 양 끝점 입니다. -100 ≤ a..

시간복잡도/공간복잡도/빅오-표기법

알고리즘 문제를 푸는데 필수 개념인 시간 복잡도와 공간 복잡도 그리고 이를 표현 하기 위한 대표적인 방법인 빅 오 표긱법에 대해 다룹니다. ▶시간 복잡도 (Time Complexity) 시간 복잡도는 알고리즘이 작업을 완료하는데 까지 걸리는 시간을 나타내는 지표입니다. 시간 복잡도를 통해 알고리즘이 얼마나 빠르게 동작하는지를 알 수 있습니다.시간 복잡도는 입력 크기에 따른 연산 횟수로 표현되며, 보통 빅 오 표기법(Big O notation)을 사용합니다. 예를 들어, O(n)은 입력 크기에 비례하여 시간이 걸린다는 것을 의미합니다. ▶공간 복잡도 (Space Complexity) 공간 복잡도는 알고리즘이 실행되는 동안 사용하는 메모리의 양을 나타내는 지표입니다. 이를 통해 알고리즘이 얼마나 많은 메모리..

그래서 JSX가 뭔데? (JS와의 차이점, 장단점 그리고 사용 팁 등 etc)

바닐라 JS로 입문을 하고 처음 React를 접하다 보면 파일의 확장자가 .jsx로 끝나는 것을 보고 다른 언어인가 하는 의문점들이 생겼습니다. 기존에 수강했던 온라인 수업에서는 이 부분에 대한 설명이 부족했던 기억이 있어 해당 내용에 대한 글을 적어 보려고 합니다. ▶ JSX는 무엇이고 등장하게 된 배경은? JSX는 React가 개발되면서 JavaScript(이하 JS) 파일 안에서 컴포넌트 기반 개발을 가능하도록 나온 확장 문법 라이브러리 입니다. 간단하게 말하면 기존 JS에서는 마크업 언어를 포함해서 작성하기에 어려움이 있었기에 JSX는 JavaScript 코드 내에서 마크업 형태의 구조를 작성할 수 있도록 해서, UI를 직관적으로 이해하고 관리할 수 있게 도와줍니다. 이전에는 HTML과 JavaS..

React/개념 2023.04.02