728x90
반응형

Programming Language 59

[Java] 출력

println()은 변수의 값을 그대로 출력한다. 따라서 값을 변환하지 않고서는 다른 형식으로 출력할 수 없다. 이를 보완하는 것이 printf()이다. printf()는 지시자(specifier)를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다. printf() 지시자 - %b : boolean 형식으로 출력 - %d : 10진(decimal) 정수의 형식으로 출력 (+) %5d : 오른쪽 맞춤 5자리, %-5d: 왼쪽 맞춤 5자리, %05d: 오른쪽 맞춤 5자리 + 빈공간은 0으로 표시 - %o : 8진(octal) 정수의 형식으로 출력 - %x, %X : 16진(hexa-decimal) 정수의 형식으로 출력(%X는 16진수에 사용되는 접두사와 영문자를 대문자로 출력) (..

[Java] 변수

변수: 단 하나의 값을 저장할 수 있는 메모리 공간 변수타입: 변수에 저장될 값이 어떤 타입(type)인지를 지정 변수이름: 변수에 붙인 이름(메모리 공간에 이름을 붙여주는 것) 변수를 선언하면, 메모리의 빈 공간에 변수타입에 알맞은 크기의 저장공간이 확보되고, 앞으로 이 저장공간은 변수이름을 통해 사용할 수 있게 된다. 변수의 초기화: 변수를 사용하기 전에 처음으로 값을 저장하는 것 Why? 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 garbage value가 남아있을 수 있기 때문 (+) 지역변수는 사용되기 전에 초기화를 반드시 해야 하지만 클래스변수와 인스턴스변수는 초기화를 생략할 수 있다. 식별자(identifier): 프로그래밍에서 사용되는 모든 이름, 식별자는 같은..

[Java] public static void main(String[] args) 분석

class 클래스 이름 { public static void main(String[] args) { } } public static void main(String[] args) 는 main메서드의 선언부로 프로그램을 실행할 때 'java.exe'에 의해 호출될 수 있도록 미리 약속된 부분이므로 항상 똑같이 적어주어야 한다. - public 접근 제한자의 종류로는 pulbic, private, protected가 있다. main 함수 모든 실행프로그램의 기본이기에 어디에서나 접근할 수 있어야 한다. 따라서 제한자로 public을 사용하여야 한다. +) private는 자기 자신 클래스 안에서만, protected는 자기 자신 클래스 안, 같은 패키지 또는 자식 클래스에서만 사용 가능 - static 메모리..

[Java] JDK와 JRE

- JDK - 자바개발도구(Java Development Kit) - JVM과 JRE에 실행되고 구동될 수 있는 자바 프로그램을 생성할 수 있게 해줌 - JRE + 개발에 필요한 실행파일(javac.exe 등) - JRE - 자바실행환경(Java Runtime Environment) - 자바로 작성된 응용프로그램이 실행되기 위한 최소환경 - JRE는 주로 다른 구성 요소의 컨테이너이며 각 구성 요소의 활동을 조율하는 역할 - JVM(Java Virtal Machine) + 클래스라이브러리(Java API) + 자바 클래스 로더(Java Class Loader)

[Java] Java의 특징

1. 운영체제에 독립적 - 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM(Java Virtual Machine)하고만 통신하기 때문이다. - JVM이 자바 응용프로그램으로 부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달함. - JVM은 운영체제에 종속적임. (+) JVM의 2가지 기본 기능은 1) 자바 프로그램이 운영체제에 독립적이게 하는 것(Write once, run anywhere) 2) 프로그램 메모리를 관리하고 최적화 하는 것(Garbage Collection 프로세스를 통해 메모리 관리) 2. 객체지향언어(Object-oriented programming laguage) - 다음과 같은 특징을 가짐. 1) 캡슐화 : 변수와 함수를 하나의 단위로 묶는 것 (+) 정보..

[Python] 정규표현식

- 정규표현식(Regular expression, regex) 프로그래밍에서 문자열을 다룰 때 문자열의 일정한 패턴을 표현하는 일종의 형식 언어 파이썬만의 고유 문법이 아니라 문자열을 처리하는 모든 프로그래밍에서 사용되는 공통 문법 대괄호([]): 대괄호 안에 포함된 문자들 중 하나와 매치. [] 안의 두 문자 사이에 하이폰(-)을 입력하면 두 문자의 사이의 범위를 의미. [] 안의 ^는 반대를 뜻함. [cd] : 문자들 중 c 또는 d가 하나 이상 있으면 된다. [a-e]: [abcde]와 동일 [1-3]: [123]과 동일 [^0-9]: 숫자를 제외한 문자만 [^abc]: a,b,c를 제외한 모든 문자와 매치 \d: 숫자와 매치. [0-9]와 동일한 표현식 \D: 숫자가 아닌 것과 매치. [^0-9]..

[Python] Selenium을 이용한 동적 크롤링

- 정적 데이터와 동적 데이터의 차이 정적 데이터: 한 페이지 안에서 원하는 정보가 모두 드러나는 것 동적 데이터: 입력, 클릭, 로그인 등을 통해 데이터가 바뀌는 것 일반적인 크롤링으로는 정적 데이터(변하지 않는 데이터)만 수집할 수 있습니다. - Selenium 셀리니움을 이용하면 정적 페이지와 동적 페이지를 모두 크롤링할 수 있지만 상대적으로 속도가 느립니다. 구분 정적 크롤링 동적 크롤링 사용 패키지 requests selenium 수집 커버리지 정적 페이지 정적 / 동적 페이지 수집 속도 빠름 상대적으로 느림 파싱 패키지 beautifulsoup beautifulsoup / selenium 다양한 브라우저 및 플랫폼에서 웹 응용 프로그램을 테스트할 수 있게 해줍니다. 웹 자동화 테스트 용도로 개..

[Python] 크롤링(Crawling)

- 크롤링 주의 사항 특정 웹사이트의 페이지를 쉬지 않고 크롤링하는 행위를 무한 크롤링이라고 하는데, 이는 해당 웹사이트의 자원을 독점하게 되어 타인의 사용을 막게 되며 웹사이트에 부하를 줍니다. 일부 웹사이트의 경우 동일한 IP로 무한 크롤링을 할 경우 해당 IP의 접속을 막아버리기도 합니다. 그렇기에 하나의 페이지를 크롤링한 후 1~2초 가량 정지하고 다시 다음 페이지를 크롤링하는 것이 바람직합니다. 신문기사나 책, 논문, 사진 등 저작권이 있는 자료를 통해 부당이득을 얻는다는 등의 행위를 할 경우 법적 제재를 받을 수 있습니다. 서버에 데이터를 요청하는 형태는 다양하지만 크롤링에서는 주로 GET과 POST 방식을 사용합니다. - GET 방식 인터넷 주소를 기준으로 이에 해당하는 데이터나 파일을 요청..

[Python] Python과 SQL 연결

- pymysql 파이썬에서 SQL DB에 접속할 때 사용하는 패키지 입니다. pymysql이 설치되어 있지 않은 경우 다음과 같이 설치하면 됩니다. # window, mac pip install pymysql # conda conda install pymysql - SQL에서 데이터 불러오기 import pymysql con = pymysql.connect( user = 'root', # 사용자명 passwd = '1234', # 비밀번호 host = '127.0.0.1', # 허용 접속 IP. 일반적으로 localhost는 127.0.0.1 db = 'shop', # 사용할 데이터베이스 charset = 'utf8' # 인코딩 방법 ) # 로컬 DB 뿐만 아니라 aws와 같은 클라우드도 연결 가능 m..

[Python] ValueError: invalid literal for int() with base 10: '1.70

# -*- coding: utf-8 -*- # UTF-8 encoding when using korean height = int(input()) weight = int(input()) BMI = weight / (height * height) if BMI < 18.5: print("저체중") elif BMI < 23: print("정상") elif BMI < 25: print("과체중") elif BMI < 30: print("경도비만") elif BMI < 35: print("중도비만") else: print("고도비만") height에 1.70을 입력하니 ValueError: invalid literal for int() with base 10: '1.70' 에러가 나타났습니다. input은 문자형으..

728x90
반응형