분류 전체보기 58

SQLite은 언제 사용하면 좋을까?

SQL이라는 존재 자체를 처음 접한 건 데잇걸즈 수업을 통해서였다. pandas로 csv 파일만 읽고 쓰던 작업을 하던 중에 잠시 맛보기처럼 배웠는데, 실무에서 많이 쓰인다는 건 조금 나중에 알게 되었다. SQL의 사용 빈도는 차치하고, 최근에 db를 붙여보는 것에 도전하고 싶어 이래저래 찾다 보니 sqlite를 다시 만나게 되었다. 처음 SQL을 접할 때도 sqlite를 설치해서 간단하게 쿼리문을 작성했던 기억이 난다. 42 과제나 실제 많은 서비스를 살펴보면 MySQL이나 Oracle을 사용하는데, 이들과 sqlite는 어떤 차이가 있을까. SQLite는 이럴 때 사용하자! Appropriate Uses For SQLite Embedded devices and the internet of things..

java lambda(람다식) & sorting(소팅) 메서드

람다식은 anonymous method라고도 불리는 java 8 부터 등장한 신문법이다. 이름이 없는 함수기 때문에 재사용이 불가하고, 간혹 남용으로 인해 비슷한 코드를 반복적으로 쓰는 문제가 생길 수도 있다고 한다. public static void usingAnonymousInlineClass() { List books = Books.all(); Collections.sort(books, new Comparator() { @Override public int compare(Book o1, Book o2) { // TODO Auto-generated method stub return o1.getTitle().compareTo(o2.getTitle()); } }); for (Book book : book..

java 2020.06.14

정렬 알고리즘 (Do it! 자바편 정리)

아래의 내용은 Do it! 시리즈 중 '자료구조와 함께 배우는 알고리즘 입문 자바편' 의 6장을 요약한 내용입니다. 정렬 정렬은 핵심 항목(key)의 대소관계에 따라 데이터 집합을 일정한 순서로 줄지어 늘어서도록 바꾸는 작업. 정렬은 대표적인 알고리즘이 8개가 있으며, 안정된 알고리즘과 그렇지 않은 알고리즘으로 나뉜다. 내부 정렬 & 외부 정렬 내부 정렬: 하나의 배열에서 작업할 수 있는 경우 외부 정렬: 하나의 배열에서 작업할 수 없는 경우 책에서 다루는 모든 정렬은 내부 정렬이다. 정렬 알고리즘의 핵심 요소 교환, 선택, 삽입. 버블 정렬 버블 정렬은 이웃한 두 요소이 대소 관계를 비교하여 교환을 반복한다. 한쪽 끝에서부터 인접한 두 요소를 비교하면서 오름차순이면 큰 걸 뒤로, 내림차순이면 작은 걸 ..

Java로 큐, 스택 이용하기

스택 & 큐 알고리즘과 자료구조를 공부하면서 스택과 큐라는 자료구조를 익히게 되었는데, 관련하여 온라인에 있는 알고리즘문제를 보니 이전에는 이 두 가지 자료구조를 사용하지 않고 단순하게 배열로 접근하여 풀었던 흔적이 있었다. 42의 경우에도, 워낙 백지 상태에서 만드는 훈련을 시키다보니, 특정 자료구조를 만들어서 효율을 극대화 시키기 보다는 내가 이해할 수 있는 방향으로 무식하게(?) 푸는 것에 익숙해져있어서 배열로만 풀어오던 것이 습관이 되어버린 것 같다. 다행이도, 자바의 경우는 java.util 에서 스택과 큐를 클래스, 인터페이스 등으로 제공해주고 관련 메서드도 모두 포함되어 있기 때문에 죄책감을 느끼지 않고 마구마구 활용해도 좋다! 스택 스택(stack)은 후입선출의 구조를 가진 자료구조다. 클..

프로그래머스 코딩테스트 연습 SQL - 입양 시각 구하기(2) 풀이

코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULL..

오십보백보 netwhat 시작하기

들어가기에 앞서 인터넷은 일상적으로 사용하고 있지만 저는 개인적으로 아래 나오는 각종 네트워크 개념을 거의 처음 접했습니다. 전문적인 입장에서 작성한 글은 아니니, 생략되는 부분이나 간혹 잘못된 정보가 있을 수도 있으니 염두에 두시고 가볍게 읽어주시면 감사하겠습니다! 워낙 방대한 자료가 있다 보니 계속 링크를 타고 타고 들어가서 찾은 자료들이 섞여 있어 출처가 불명확할 수도 있는 점 또한 참고 부탁드립니다. 미션 ecole42의 과제 중 netwhat이라는 과제가 있는데, 이 과제에서는 아래의 질문들에 대한 답을 직접 찾고 문제를 풀게끔 안내하고 있습니다. What is an IP address : IP 주소란 무엇인가? What is a Netmask: 넷마스크란 무엇인가? What is the sub..

AWS Elastic Beanstalk 으로 flask app 배포하기(+무료 도메인 route53, freenom)

들어가기에 앞서 이 글은 python 웹 프레임워크 flask를 이용하여 제작한 웹 어플리케이션을 AWS를 이용하여 배포하는 과정을 담고 있습니다. 필자는 flask와 AWS를 처음 사용해보았으며, 데이터베이스는 붙이지 않고 AWS는 무료로 1년 제공되는 상황에서 서비스를 이용했습니다. 개발 환경은 macOS Catalina 버전 10.15.3입니다. 밑에서 설명할 배포 과정은 개인 웹 프로젝트를 무료로 도메인을 지정하고 배포하기 위해 찾아본 방법 중 한 가지입니다. 해당 프로젝트의 상세 내용은 아래의 깃헙 레포에서 확인하실 수 있습니다. 예시 프로젝트 깃헙 레포 링크: https://github.com/pje1740/cart_savior 목차 AWS Elastic Beanstalk Console을 이용..

웹/호스팅 2020.05.10

오십보백보 ft_server 시작하기

들어가기에 앞서 저는 웹 서버나 도커에 대한 지식이 0인 상태로 시작했습니다. 과제를 시작하기 전에는 '도커'와 '웹 서버'라는 단어만 들어봤고 이에 대한 개념은 지금도 명확하진 않습니다. 그런 이유로 구체적인 내용이나 근본적인 부분은 크게 설명해 드리지 못하는 점 이해 부탁 드립니다! 제가 작업한 환경은 macOS Catalina 버전 10.15.3 입니다. 우분투나 윈도우에선 다른 부분이 많을 수 있으니 염두에 두고 봐주시면 감사하겠습니다. 미션 ft_server를 매우 광범위하게 정의한다면, 도커 기술을 활용하여 웹 서버를 만드는 것입니다. 그리고 이 웹 서버는 다음과 같은 조건을 충족하면 됩니다. 웹 서버는 Nginx를 이용해서 설치하며, 하나의 도커 컨테이너만 설치합니다. 이 컨테이너의 OS는 ..