공부방 11

02. 변수와 타입

변수란? 값을 저장할 수 있는 메모리 공간 -> 메모리 공간을 차지한다. 현업에서는 메모리가 한정이 되어 있으므로 무작정 크게 만들지 않게 조심하자. 1. 변수의 선언 : 메모리 주소에 붙여진 이름 타입 + 변수이름 ; int test; 2. 변수에 값을 저장 : 대입 연산자(=)를 이용하여, 좌변의 변수(메모리공간)에 값(데이터)를 저장하는 것 int score = 100; (score라는 메모리 공간에 100이라는 값을 저장) 리터럴 : 소스코드에서 직접 입력된 값을 의미한다. 여기서는 100이라는 정수가 이에 해당한다. 예시 : ( 0 , 0.25, 'A', "test", true ) 3. 변수의 값 쓰기 : 변수에 저장된 값을 이용하는 방법 int total = 100 + score; (100 +..

01. 자바 시작하기

1. 프로그래밍 언어 컴퓨터가 이해할 수 있는 기계어, 사람이 이해하는 자연어의 사이에서 다리역할을 하는 언어 고급언어 : 사람이 이해하기 쉬운 언어, 컴파일러를 통해 기계어로 변환되는 언어(C,C++,Java) 저급언어 : 기계어에 더 가까운 언어(어셈블리어) 소스 : 이러한 프로그래밍 언어로 작성된 내용 컴파일러 : 프로그래밍 언어를 기계어로 변환하는 소프트웨어 프로그램 : 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것 2. 자바의 특징 이식성이 높은 언어 : 대부분의 운영체제에서 사용할 수 있다. (Window, Linux, Unix) 객체지향 언어 : 객체를 만들고 이것들을 조립, 연결하여 전체 프로그램을 완성하는 객체지향 언어이다. 함수적 스타일 코딩을 지원 : Java 8버전 부터 람다식..

1. 자료형 정리

1. 자료형 [기본형] : 실제 값을 변수에 가지고 있음. [참조형] : 실제 값이 들어 있는 메모리 주소를 가지고 있음. [기본형] - 논리형 (boolean) - true,false - 문자형 (char) - 'a', '1' , '-' - 정수형 (byte, short, int, long) - byte : -128 ~ 127 short : -32,768 ~ 32,767 int : -2,147,483,648 ~ 2,147,483,647 long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 - 실수형 (float, double) float : (3.4 X 10-38) ~ (3.4 X 1038) double : (1.7 X 10-308) ~ (1.7..

5. 셀레니움 동작 코드

1. ChromeDriver 자동다운과 특정 url을 파라미터로 받아 실행하게끔 필자가 만든 ChromeApp클래스이다. 기본적으로 static void setup()은 클래스로부터 인스턴스가 만들어질 때 한번 세팅되며, 이때, chromeDriver가 생성된다. setChromeUrl : 접속할 url을 설정한다. startChrome : 옵션을 세팅하여 브라우저를 연다. getDriver : 변수로 저장하고 있는 driver객체를 넘긴다. setChromeUrl : 파라미터로 받은 URL로 이동한다. closeChrome : driver 자원을 close한다. 2. Java AWT와 연계하여 Korail(코레일) 홈페이지의 자동 로그인 테스트를 해보았다. (일부코드는 보안상 지움) 리소스 관련한 코드..

4.셀레니움 setup 코드

필자는 이전 Dependency 설정에 셀레니움 4버전을 사용하였다. 기존 3버전과의 큰 차이라고 함은 ChromeDriver에 대한 설정을 따로 안하며, 동적으로 자신의 Chrome 버전에 맞게 다운해주고 연결하는 설정이 가능하다는 것이다. 기존 소스와 현재 나의 소스를 비교하는 방식으로 작성하겠다. [기존] 1. 자신의 크롬 버전에 맞는 크롬 드라이버를 설치한다. (https://chromedriver.chromium.org/downloads) 2. Java코드에 셀레니움 import를 위한 jar를 다운받는다.(maven, gradle의 경우 dependency 설정으로 가능함) 3. 아래 소스를 통하여 다운받은 크롬드라이버로 브라우저를 통제한다. WebDriver driver = webdriver..

2.셀레니움의 동작원리

1. 개발자는 Python, Java와 같은 언어를 이용하여 개발을 하게 된다. 2. 위의 개발을 통해 만들어진 프로그램은 구동시 JSON 형식을 통하여 Selenium WebDriver 모듈을 작동시키는 것으로 보임 (import, dependency를 동하여 모듈을 끌어와야 함) 3. WebDriver는 실제 브라우저를 통제하게 되는데, 프로토콜은 HTTP로 보임. https://kadensungbincho.tistory.com/75 셀레니움 내부구조 (Selenium Internals) 이 글에서는 자동화 웹 테스트나 웹 스크래핑을 진행해보셨다면, 한 번쯤은 들어보셨을 셀레니움(Selenium)의 내부구조를 살펴보려 합니다. 먼저 넓은 범위의 아키텍쳐를 살펴보고, 실제 주요 로 kadensungbi..

1.셀레니움이란

셀레니움이란 셀레니움은 웹 애플리케이션 테스트를 위한 프레임워크입니다. 웹에 하는 명령을 코드화시켜서 작동시킵니다. 다양한 브라우저 작동을 지원하며 크롤링에도 활용됩니다. 현존하는 거의 모든 웹브라우저를 다양한 언어를 통해 제어 가능합니다. 크롤링에서는 정적, 동적 페이지 크롤링으로도 접근이 불가능한 데이터에 접근할 때 유용하게 사용됩니다. -> 브라우저(웹)에서 사용자가 화면(클릭, 입력, 화면, 데이터) 에 대하여 코드로 통제할 수 있는 자동화 테스트 툴이다. 필자는 크롤링, 매크로를 위하여 해당툴을 사용하였다. 참조한 사이트 : https://luminitworld.tistory.com/90 셀레니움(selenium)으로 크롤링(스크래핑) ( 본 글의 크롤링은 크롤링이라기보다 스크래핑이 더 가깝습니..

3.셀레니움 Java Dependency

Java에서 셀레니움을 사용하기 위해서는 jar파일들이 필요하다. 다음은 필요한 jar파일들을 위한 gradle dependency 설정이다 compile group: 'org.seleniumhq.selenium', name: 'selenium-support', version: '2.43.1' implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '4.8.0' implementation("io.github.bonigarcia:webdrivermanager:5.3.3") selenium-java : 셀레니움을 기동하는 Driver와 같은 필수 요소들을 포함한 jar(필수임) selenium-support : 셀레니움..

19_11_25 공부정리(JSP 실습)

1. MVC 패턴 M : model -> DB와의 연결객체 이며, 쿼리문을 넘겨주고, DB에서 리턴값을 가져온다 V : view -> 사용자가 보는 페이지 , 사용자의 입력과 결과의 출력을 다룸 C : controller -> 사용자의 입력에 따라 다른 실행을 하게 함 , 실행의 결과에 따라 다른 페이지가 사용자에게 보여 줌 즉 , 예시로 1. 사용자가 로그인 버튼을 누름 2. 입력에 따라 로그인 비즈 객체 생성 3. Dao 객체 생성 4. Dao객체의 로그인 쿼리 관련 메소드를 실행, DB로 부터 리턴값 받아옴 5. 리턴값 반환 6. 리턴값 반환 7. 리턴값에 따라 controller가 다른 View를 사용자에게 보여줌 2. 여기서 부터는 그냥 자유로운 형식 자바 스크립트릿 : 자바 언어의 사용구역 자..

공부방 2019.11.25

19_11_24일 공부정리(마이바티스 프로그래밍 원리와 활용 5장)

5.1 마이바티스 매핑 구문 정의의 개요 매핑을 해놓는 이유 : 실행 애플리케이션에 쿼리를 넣으면, 코드보기가 복잡하기도 하며, 쿼리문 오류인지 어플리케이션 오류인지 알기가 어렵기 때문에 쿼리문을 추출한 다음 형식에 맞추어 파일에 정의 한다. 이를 매핑구문 정의라고 한다. 이로인해 좋은 점은 쿼리문 변경시, 소스 코드를 일일이 찾지않아도 된다는 점이다. 마이바티스는 1. 마이바티스 매퍼xml파일이나 2. 매퍼 인터페이스에 매핑구문을 정의할 수 있다. 각각 1. 매퍼 xml의 구성요소, 2. 어노테이션을 사용한다. 일단 매퍼 인터페이스는 6장에서 다루기로 하고 , 오늘은 마이바티스 매퍼 xml에 대해서 공부하겠다. 예시 /* 쿼리문 */ select shop_no, shop_name, shop_locati..

공부방 2019.11.24