전체 글 97

git stash 란?

git stash 아직 마무리 하지 않은 작업을 스택에 저장할 수 있도록 하는 명령어이다. 명령어 정리([]안에 내용은 생략 가능함) git stash [push]: stash 저장 git stash list: stash list 조회 git stash apply [stash이름]: stash 적용 git stash pop: 최근 stash 적용하고 stash 삭제 git stash drop: stash 삭제 git stash clear: stash 전체 삭제 언제 사용하는가? 현재 작업내역이 있는 상태에서 다른 commit으로 HEAD를 이동시켜야 하는 상황(작업 디렉토리를 변경할때)에서 임시 commit 을 사용하고 싶지 않을 때 현재 브랜치에서 작업한 내역을 현재 브랜치에 적용하지 않고 다른 브랜치..

형상관리/GIT 2020.09.18

[RDS] 계층적 데이터 모델 - 댓글, 추천인

계층적 데이터 모델 - 댓글, 추천인 계층적 데이터 모델은 댓글, 추천인등록할때 많이 사용된다. 아래 계층적 모델의 종류와 장단점을 설명하였다. 계층이 하나일때 즉 부모와 자식 계념만 있으면 인접목록, 계층은 여러개이나 데이터가 적고 간단한 프로그램일 경우에는 경로 열거, 계층도 다수이면서 제한이 없고 데이터가 많은 경우 클로저테이블을 사용했었다. 계층적 데이터 모델 인접 목록 재귀적 쿼리 경로 열거 중첩 집합 클로저 테이블 인접 목록 가장 쉽게 만들 수 있는 트리 구조이다. 부모 id를 저장하여 어떤 데이터 밑에 있는 데이터인지 알 수 있다. 데이터가 단순히 한단계가 아니라 여러 단계일 경우 트리의 각 단계를 조인으로 구해야 하는데 깊이가 제한이 없는 쿼리의 경우 query문을 작성하기 힘들다. 주어진..

데이터베이스 2020.09.17

[백준 알고리즘] 1655 문제 풀이

문제 수빈이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 수빈이가 정수를 하나씩 외칠때마다 동생은 지금까지 수빈이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 수빈이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다. 예를 들어 수빈이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 수빈이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램을 작성하시오. 정답 import heapq left = list() # 최대힙 right = list() # 최소힙 total_count = int(input()) for x in range(total..

알고리즘 2020.09.15

미국 구글, 영국 구글, 프랑스 구글 각 나라별 구글 접속 방법

구글은 전세계적으로 많이 사용하는 포털사이트입니다. 구글은 접속한 기기의 IP를 국가별로 분류하여 각 나라 사람들에게 최적화된 검색 결과를 제공합니다. 이러한 특징으로 외국어로된 자료들이 검색결과에 나오지 않는 경우가 발생합니다. 따라서 각 나라별 구글 사이트 접속하는 방법을 알아 보겠습니다. 나라별 접속 URL 미국 구글 http://www.google.com/ncr 영국 구글 https://www.google.co.uk/ncr 호주구글 http://www.google.com.au/webhp?hl=en 프랑스구글 https://www.google.fr/webhp?hl=fr 일본구글 https://www.google.co.jp/webhp?hl=jp url에 적혀있는 ncr의 의미는 No Country R..

일상/메모장 2019.09.20

정적 타입 언어, 동적 타입 언어 :: Python?

타입이란 자료형입니다. int형, float형, double형, string형, 객체 등이 있습니다. 정적 타입 언어 타입(자료형)이 고정된 언어입니다. 정적언어는 자료형을 컴파일 시에 결정하는 것입니다. 따라서 소스코드 상에 자료형을 지정해줍니다. 정적언어의 대표적인 종류는 C, C#, C++, JAVA 등이 있습니다. 컴파일 시 자료형에 맞지 않은 값이 저장되면 컴파일 에러가 발생합니다. 정적언어는 컴파일 시 타입에 대한 정보를 결정하기 때문에 속도가 빠르고, 타입 에러로 인한 문제점을 초기에 발견할 수 있으므로 타입의 안정성이 올라갑니다. 동적 타입 언어 타입(자료형)이 동적으로 변하는 언어입니다. 동적언어의 자료형은 실행될 때 결정됩니다. 정수형으로 선언되었던 변수가 문자형으로도 저장되고 객체로도..

두 정수 사이의 합 (Level 1) :: 알고리즘

문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 풀이 def solution(a, b): answer = 0 if a < b: min = a max = b+1 else: min = b max = a+1 for x in range(min, max): answer += x return an..

알고리즘 2019.08.17

Selenium 사용법(자동 로그인)

selenium은 브라우저를 자동화하는 도구입니다. 기본적으로 웹 어플리케이션 자동화 테스트를 위해 사용됩니다. 그러나 이것에만 국한되지 않고 확장하여 사용할 수 있습니다. 이번에는 브라우저에서 자동으로 원하는 페이지에 접속하여 로그인까지 하는 예제를 해보겠습니다. selenium 설치 및 사전 준비 크롬 설치 selenium은 크롬 기반 프레임워크입니다. 따라서 PC에 크롬이 설치되있어야합니다. selenium 모듈 설치 pip install selenium 웹 드라이버 설치(https://sites.google.com/a/chromium.org/chromedriver/) URL에 들어가서 stable 설치 오류나면 버전을 확인하여 다시 설치 다운받은 웹드라이버의 버전은 설치된 크롬의 버전보다 낮아야 ..

python 데이터 통신 프로토콜 : pickle 모듈

pickle 모듈은 python 객체를 직렬화 역질렬화하는 바이너리 프로토콜입니다. 얼핏보면 어렵다고 생각할 수 있는데 하나씩 살펴보겠습니다. pickle 모듈은 python에서만 사용 할 수 있습니다. 따라서 python 객체를 직렬화 역직렬화 한다고 하였습니다. 직렬화란 데이터 스트림에 쓰기 위해 객체에서 연속적인 데이터로 변환하는것이고 역직렬화는 반대입니다. pickle에서는 역속적인 데이터를 바이너리 형식으로 저장합니다. 사용법 pickle은 직렬화 역직렬화 방법만 알면 됩니다. dumps 데이터를 직렬화합니다. 직렬화한 데이터를 출력해보면 바이너리형식임을 알 수 있습니다. 소스코드 : import pickle data = { 'name': 'lee', 'age..

롱 샷 :: 영화 리뷰

영화 초반에는 영어 대사를 듣기위해 집중하다보니 영화에 집중도가 떨어지고 재미없게 느껴졌는데 그 사실을 깨닫고 영화에 집중하니 같은 영화인데 갑자기 재밌게 느껴졌습니다. 인생도 그런거 아닐까요? 내가 하고자하는 그것에 집중해야지 다른것을 생각하다보면 본질을 잃어버릴 수 있다는 생각을 하였습니다. 영화 이야기를 본격적으로 해보겠습니다. 모든것이 완벽한 국무부 장관 샬롯(여자주인공)과 자신의 정의를 가지고 그 정의만 바라보는 프레드(남자 주인공)의 이야기입니다. 프레드는 작은 언론사의 기자였습니다. 다른 언론사와 달리 자신이 다루고 싶은 주제를 마음껐 이야기할 수 있기에 열정적으로 취재를 하고 자랑스럽게 지내고 있었습니다. 하지만 어느날 프레드가 싫어하는 언론사에게 합병되게 되며 퇴사를 하게됩니다. 이때 팀..