본문 바로가기

728x90

분류 전체보기

[데이터베이스] 데이터와 데이터베이스, DBMS 데이터베이스는 데이터(data)와 베이스(base)의 합성어이다.DBMS는 Database Management System의 줄임말로, '데이터베이스 관리 시스템'을 뜻한다. 효율적인 데이터 관리 조건데이터를 통합하여 관리데이터 누락 확인과 중복 제거일관된 방법으로 관리여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능파일 시스템데이터베이스 개념이 등장하기 전에는 주로 파일 시스템 방식을 사용하여 데이터를 관리했다.파일 시스템은 서로 다른 여러 응용 프로그램이 제공하는 기능에 맞게 필요한 데이터를 각각 저장하고 관리한다.그렇기 때문에 각 파일에 저장한 데이터는 서로 연관이 없고 중복 또는 누락이 발생할 수 있다. DBMS이러한 파일 시스템의 단점을 보완하기 위해 DBMS 가 등장한다.데이터베이.. 더보기
[책 리뷰] 《Do it! 오라클로 배우는 SQL 입문》 이지스퍼블리싱 서평단으로 선정되어 도서를 지원받아 솔직하게 쓴 글입니다. 컴퓨터공학을 전공하는 사람들 혹은 전공한 사람들 중 데이터 분석가를 자신의 직업으로 삼고 싶어하는 사람은 많다. 데이터 분석가가 무엇일까. 데이터 분석가는 데이터를 정리하고 시각화하며, 데이터의 구조와 저장 방식을 이해하는 사람들이다. 분석 뿐 아니라 데이터의 수집과 저장 그리고 가공까지 이해하는 사람들이다. 데이터 분석가는 엑셀, 파이썬, R 과 같은 도구를 통하여 데이터를 다루지만 기본이 되는 것은 '데이터베이스'이다. SQL을 활용하여 데이터를 추출하고 변형하며 빠른 속도로 정교하게 분석도 가능하다. 나는 학교에서 데이터베이스를 배울 때 아쉬웠던 점이 많았다. 교수님께서 설명은 해주셨다만, 이해가 되지 않았다. 하지만 오늘 리.. 더보기
[백준] 10773번 : 제로 - C/C++ 문제 풀이 순서는 아래와 같다.1. 입력할 숫자의 개수 k 입력2. k개만큼의 수 입력 받기 (0을 입력했다면 최근에 입력한 수 지우기)3. 입력을 완료했다면 남아있는 수 출력하기 최근에 입력한 수를 지우는 방법은 stack을 사용하면 된다.스택은 LIFO의 형태이기 때문에 0을 push 했을 경우에,두 번 pop 해주면 된다. 그렇게 코드를 작성해보자.스택을 사용하기 위해서는 헤더를 추가해주어야 한다.#include  입력받을 개수 k를 입력 받았다고 가정하고,스택을 구현하자.stack st;for(int i=0;i> n; if(n == 0){ if(!st.empty()){ st.pop(); } } else { t.push(n); }} 스택을 이렇게 간단하게 구현할 수 있다!0을.. 더보기
[Android] 안드로이드 레이아웃(Layout) 이번 글에서는 안드로이드의 레이아웃과 그 속성에 대해 이야기해보고자 한다.먼저 레이아웃의 종류에 대해 알아보자.  위의 사진에서 볼 수 있듯이 레이아웃은 StackLayout, AbsolteLayout,RelativeLayout, GridLayout, ContentView, ScrollView, Frame 총 7개의 종류로 나눌 수 있다.이렇게 나누는 사람도 있고,Linear LayoutRelative LayoutConstraint LayoutTable LayoutFrame LayoutList ViewGrid ViewAbsolute LayoutWebViewScrollView위와 같이  종류를 나누는 사람도 있다.어떻게 종류를 나눠도 상관은 없다.이제 레이아웃의 속성에 대해 알아보자.TextView안드로이.. 더보기
[Android] 안드로이드 매니페스트(Manifest)란? Manifest란?Manifest는 앱의 기본 정보와 시스템 권한, 컴포넌트 등을 정의하는 필수적인 설정 파일이다.앱이 실행될 때 안드로이드 운영체제는 이 파일을 참고하여 앱의 구조와 동작 방식을 이해하고, 필요한 권한과 기능을 적절히 할당한다.주요 속성 : , , , , , ,  package, xmlns:androidallowBackup, icon, label, theme, usesCleartextTrafficname, exported, launchMode, screenOrientation, themename, exported, foregroundServiceTypename, enabled, exportedname (필요한 권한 설정)name, value (앱 설정 값) 태그속성매니페스트 파일의 최상.. 더보기
[Android] 안드로이드 아키텍처(Architecture) 권장사항 안드로이드의 아키텍처에 관해 설명하기 전에 안드로이드에 대해 알아보자.안드로이드란?안드로이드는 구글에서 만든 스마트폰과 태블릿 PC 같은 터치스크린 모바일 장치용으로 디자인된 운영체제이다.수정된 리눅스 커널 버전을 비롯하여 오픈 소스 소프트웨어에 기반을 둔 모바일 운영체제이다. 안드로이드는 아래와 같은 구조를 가진다. 안드로이드는 리눅스 커널 위에서 동작하고, 자바와 코틀린을 통하여 개발한다. 그럼 안드로이드의 권장 아키텍처는 무엇일까?안드로이드는 MVVM 또는 MVI 패턴을 사용하고 Jetpack 라이브러리를 통하여 데이터 바인딩, UI 관리, 의존성 주입 등을 처리하는 것을 권장한다. 위와 같은 구조는 앱의 유지보수성과 확장성을 높이고, 모듈화된 레이어를 통하여 관심사를 분리하고 복잡성을 관리한다. .. 더보기
[백준] 13023번 : ABCDE - C/C++ 문제에서 말하는 친구 관계에 대해 다시 살펴보자.A는 B와 친구다.B는 C와 친구다.C는 D와 친구다.D는 E와 친구다.간단하지만 문제에서 말하고 있는 문장을 도식화하면 위와 같다. 사람의 수를 node라고 볼 수 있고, 친구 관계의 수는 edge라고 볼 수 있다.각각 2,000이 MAX 임을 문제에서 이야기하고 있다.그래프를 보고 위의 그림과 같은 관계가 있는지 파악하는 문제이다. 예제 입력4를 그림으로 그려서 확인해 보자.그림은 이렇게 그릴 수가 있다.이제 친구 관계가 위에서 본 것과 같이 일자로 된 것이 있는지 확인해보자.0번 노드에서 출발하여 2번 노드까지 도착하는 것을 도식화하면 아래와 같다.ABCDE 순서로 일자로 나열되기 때문에 해당 예시는 1을 출력하게 되는 것이다. 13023번은 아래와 .. 더보기
[백준] 16953번 : A → B - C/C++ 문제를 보고 A → B 이렇게 가는건 너무 경우의 수가 많지 않은가?라는 생각을 했다.하지만 반대로 B → A 의 수는 연산의 횟수가 적을 것이라고 생각할 수 있다. 그러니, 우리는 위와 같은 아이디어로 문제를 풀어나갈 수 있다. B → A 를 생각해보자.짝수라면 2로 나누기끝자리가 1이라면 1을 제외시키기1번과 2번에 속하지 않는다면 -1 출력1번과 2번을 코드로 바꾸면 아래처럼 작성할 수 있다.더 깔끔한 코드가 있을 수 있겠지만, 필자는 이렇게까지가 최선이다.while(a  b가 짝수라면 2로 나누기. (가능한 연산이 곱하기 2, 맨 끝자리에 1 추가하기 뿐이니..)if(b % 10 == 1) 이 부분이 끝자리가 1일 때 제거하는 방법. (왜 끝자리가 1이냐면, 1만 추가할 수 있으니까.) 이렇게 핵.. 더보기

728x90