[Python] Input/Output
·
프로그래밍/Python
데이터 입력파이썬은 데이터를 입력받을때 Input() 함수를 사용하는데 해당 함수는 기본적으로 데이터를 문자열로 입력받는다. a = input() # hello 입력print(a) # hello 출력a = input() # 123 입력print() # 123 출력 값을 원하는 형태의 자료형으로 입력받고 싶을 땐 다음과 같이 원하는 자료형을 앞에다 붙여주면 된다.a = int(input())b = int(input(),8) # 8진수를 입력받는 형태.c = int(input(),2) # 2진수를 입력받는 형태. 1010을 입력하면 십진수인 10이 할당됨l = list(input()) # abcde 입력print(l) # ['a','b','c','d','e'] 출력 단일 값이 아닌 여러 값을 ..
[Java 기초] OOP와 Java 언어의 특징
·
프로그래밍/JAVA
이력서를 쓰던중에 spring을 사용할 줄은 알지만 그렇다고 java를 잘 다룬다고는 못한다는 점을 깨달았다. 왜 자바를 사용하는지, 이 언어가 다른 언어에 비해 갖는 이점은 무엇인지, 자바언어의 주요 특징은 무엇이며 어느 경우에 사용하는 것이 좋은지 뭐 이런 기본적인 것에 대해 자문해보았을 때, 전혀 대답을 하지 못했기 때문이다. 그래서 안그래도 할게 많은 취준 공부에 자바 공부가 추가되었다. 화이텡..!우선 자바의 문법들에 대해 알아보기 전에 언어가 갖는 특징부터 공부해보자.객체 지향 언어 프로그래밍(OOP)이란?OOP란 객체 지향적인 프로그래밍으로, C언어와 같은 절차 지향적인 프로그래밍이 아닌 객체의 관점에서 프로그래밍 하는 것을 뜻한다.절차 지향 프로그래밍은 프로세스가 함수 단위로 순서대로 진행..
[SQL] 관계형 데이터 베이스
·
프로그래밍/SQL
관계형 데이터베이스 (RDBMS) 개념관계형 데이터베이스는 데이터를 테이블 형식으로 저장하고 관리하는 데이터베이스 시스템이며, SQL 언어로 데이터를 조작할 수 있다.관계형 데이터베이스는 크게 프로덕션 데이터베이스와 데이터 웨어하우스로 종류를 나눠볼 수 있다.프로덕션 데이터베이스프로덕션 데이터베이스는 주로 실시간 트랜잭션 처리(OLTP, Online Transaction Processing)를 위해 설계된 데이터베이스이다. 이 데이터베이스는 업무 처리, 주문 처리, 고객 관리 등의 다양한 업무 프로세스를 지원하기 위해 사용되기 때문에 처리 속도에 집중된 데이터베이스이다. MySQL, PostgreSQL, Oracle 등 백엔드 개발자들이 다루는 데이터베이스가 이에 속한다.해당 데이터베이스는 주로 Star..
[SQL] 용어 정리 (Table, Colum, Row)
·
프로그래밍/SQL
관계형 데이터베이스(RDB)는 데이터를 행과 열로 이루어진 테이블의 형태로 구성하고, 테이블 간의 관계를 정의하는 데이터베이스이다. 이번 시간에는 간단한 수강신청 예시를 통해 관계형 데이터베이스에서 각각의 용어들이 어떤 의미를 가지고 있는지 알아보자.테이블(table)테이블이란 데이터베이스에서 행과 열로 구성되어 있는 데이터의 집합을 의미한다. 학생 정보를 저장하는 테이블 student와 강의 정보를 저장하는 class 테이블이 있다고 하자.student Student_IdnameClass_Id1철수A2영희B3훈이AclassClass_IdClass_nameA수학B영어열(colum)관계형 데이터베이스에서 열(column)은 테이블에 존재하는 필드(field)를  나타낸다. 필드는 앞으로 테이블의 행에 저장..
[Python] 데이터 시각화 라이브러리 - Seaborn
·
프로그래밍/Python
Seaborn 개념   Seaborn은 python에서 제공하는 데이터 시각화를 위한 라이브러리이다. Matplotlib을 기반으로 만들어졌으며, 데이터 시각화를 보다 쉽고 가시적으로 진행할 수 있게끔해준다. seaborn 자체에 내장된 penguins dataset을 활용해 사용법에 익숙해져보자. 사용할 데이터 셋의 구성은 다음과 같다.species : 펭귄 종island : 서식지bill_length_mm : 부리 길이bill_depth_mm : 부리 위아래 두께flipper_length_mm : 팔 길이body_mass_g : 몸무게sex : 성별import seaborn as snsdata = sns.load_dataset('penguins') # 데이터 로드data = data.dropna() ..
[Python] 웹 스크래핑 라이브러리 - Selenium
·
프로그래밍/Python
이전 포스팅에서 알아본 BeautifulSoup는 주로 정적인 웹 페이지에서의 데이터 추출을 위해 사용되는 라이브러리이다. 하지만 우리가 평소 사용하는 웹 사이트는 동적인 웹 페이지로 구성되어있는 경우가 더 많다. 이러한 경우에 사용할 수 있는 웹 스크래핑 도구인 Selenium에 대해서 알아보자. Selenium  Selenium 이란?selenium은 웹 어플리케이션의 동적인 요소와 상호작용하기 위한 자동화 도구로 사용된다. 실제 브라우저를 제어하여 자바스크립트를 실행하고, 클릭, 텍스트 입력 등의 사용자 동작을 시뮬레이션한다. 기본적인 사용법selenium 라이브러리에 있는 webdriver 모듈을 통해 웹 사이트에 직접적으로 접근해 제어가 가능하다. 크롬을 통해 웹 사이트에 접근할 것이기 때문에 ..
[Python] 웹 스크래핑 라이브러리 - beautifulsoup
·
프로그래밍/Python
지난 포스팅에서는 웹 스크래핑과 웹 크롤링 두 가지 개념에 대해서 간략하게 알아봤었다. 오늘은 웹 스크래핑에 사용되는 Python 라이브러리 중 하나인 BeautifulSoup에 대해서 알아보자. BeautifulSoup  BeautifulSoup 란?위에서 말했듯이, BeautifulSoup는 웹 스크래핑을 위한 파이썬 라이브러리이며, 주로 HTML 및 XML 문서에서 데이터를 추출하고 구문을 분석하는 데 사용된다. 일반적으로 requests 메서드를 통해 가져온 값을 HTML로 파싱 후, 변환된 값에 beautifulSoup를 적용하며 사용한다.사용법beautifulSoup의 기본적인 사용법은 다음과 같다. 우선 라이브러리를 import한 후 객체를 생성해 메서드들을 사용하기만 하면 되기때문에 간단히..
[웹 기초] 웹 스크래핑 VS 웹 크롤링
·
프로그래밍/WEB
웹 상에서의 데이터 추출은 웹 페이지의 HTML 구조를 파싱하고 원하는 정보를 추출하는 과정을 뜻한다. 이러한 과정을 진행할 때 가장 대표적으로 쓰이는 방법으로는 웹 스크래핑과 웹 크롤링이 있다. 오늘은 이 두가지 방법과 데이터 추출시의 규제를 정해놓은 파일인 robots.txt에 대해서 알아보자.웹 스크래핑  웹 스크래핑은 웹 페이지에서 원하는 정보를 추출하고 수집하는 프로세스를 의미한다. 주로 정적인 웹 페이지에서 데이터를 수집하며, 데이터를 추출하고 가공하여 필요한 형태로 변환한다. 이 때 Beautiful Soup와 Requests와 같은 라이브러리를 주로 사용한다. 일반적으로는 소규모의 데이터 수집시에 활용되는 방법이다.웹 스크래핑 라이브러리들은 아래에 보다 자세히 정리되어있다.https://s..
[웹 기초] HTTP 와 HTTPS
·
프로그래밍/WEB
HTTP(HyperText Transfer Protocol)HTTP 란?HTTP는 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받는데 사용되는 프로토콜이다. 클라이언트와 서버 간의 통신을 위한 표준 프로토콜로, 주로 웹 브라우저와 웹 서버 간에  문서나 데이터를 전송하는 데 주로 사용된다. 해당 프로토콜은 클라이언트가 브라우저를 통해 어떠한 서비스를 URL이나 다른 수단을 통해 요청(request)하면 서버가 해당 요청 사항에 맞는 결과를 응답(reponse)하는 형태로 동작한다.HTTP 특징TCP/IP를 이용하는 응용 프로토콜이다.HTTP는 무상태(stateless) 프로토콜이다. 따라서 같은 클라이언트로 부터 연속적인 요청이 와도 서버는 상태 정보를 유지하지 않고 독립적으로 처리한다.HTTP는..
[웹 기초] HTML 이해하기
·
프로그래밍/WEB
HTML이란?  HTML 기본 문법HTML은 기본적으로 의 구조를 가지며, 콘텐츠를 가지는 태그와 가지지 않는 태그로 구분된다. 콘텐츠를 가지는 태그는 시작 태그와 종료 태그를 가지는 한 쌍으로 존재하는 반면, 콘텐츠를 가지지 않는 태그는 단일 태그만 존재한다. 이때 단일 태그는 셀프 클로징을 통해 코드를 끝내거나, 아예 열린 상태로 두거나 한다. 콘텐츠 html 문법 사용 시 주의해야 할 점은 다음과 같다.대소문자 주의 - 태그는 가능한 소문자로 작성닫는 태그 생략 주의 ID가 중복되지 않게 주의계층 구조 유지동일한 의미의 태그 중첩 주의속성과 값 태그는 기본적으로 기능 확장을 위한 속성과 값을 가진다. --> 아무개 아무개 -->HTML 기본 문서 구조HTML의 기본적인 문서 구조는 다..
[Python] PEP8 스타일
·
프로그래밍/Python
PEP8 스타일   PEP 8PEP8 : 파이썬 개선 제안서, 파이썬 코드를 어떻게 구상할 지 알려주는 스타일 가이드PEP8 전체 가이드다른 사람과 원활하게 협업하려면 공통된 스타일 공유가 필요일관성 있는 스타일은 나중에 수정하기도 쉽다.whitespace한 줄의 문자 길이가 79자 이하여야 한다.함수와 클래스는 빈 줄 두개로 구분한다.클래스에서 메서드는 빈 줄 하나로 구분한다.변수 할당 앞 뒤에 스페이스를 하나만 사용한다.리스트 인덱스, 함수 홏ㄹ, 키워드 인수 할당에는 스페이스를 사용하지 않는다.naming함수, 변수, 속성 : lowercase_underscore보호(protected) 인스턴스 속성 : _leading_underscore비공개(private) 인스턴스 속성 : __double_le..
[Python] 큐(Queue)
·
프로그래밍/Python
큐   큐자료를 보관할 수 있는 선형 구조로 push(enqueue)와 pop(dequeue)이 반대에서 이루어지기 때문에 선입선출(FIFO)방식을 채택한 자료구조이다.큐는 자료를 생성하는 작업과 그 자료를 이용하는 작업이 비동기적으로 일어날 때 사용된다.또한 자료 생성이 여러 곳에서 발생하거나, 자료 이용이 여러 곳에서 발생할 때 사용된다.스택과 마찬가지로 큐 역시 배열(리스트)과 연결 리스트(이중 연결 리스트)를 이용하여 구현가능하다.연산 종류설명배열 시간 복잡도연결 리스트 시간 복잡도size()현재 큐에 들어 있는 데이터 원소 수 반환O(1)O(1)isEmpty()현재 큐가 비어 있는지 판단O(1)O(1)enqueue()원소 x를 큐에 pushO(1)O(1)dequeue()큐의 맨 앞 원소를 반환 ..