본문 바로가기

STUDY

(65)
[JAVA 웹 개발 공부] 국비지원 44일차 - addBatch, Index, last_insert_id(), 세션변수, Stored Procedures JDBC 대량 쿼리문 addBatch, executeBatch 실행 addBatch()를 사용하면 쿼리를 건별로 수행하지 않고, 여러 개의 쿼리들을 메모리에 올려놓고 모아둔 쿼리들을 한 번에 실행시켜 수행 속도를 개선할 수 있다. 1. Connection객체 설정 부분에 AutoCommit을 false로 설정 conn.setAutoCommit(false); 2. addBatch로 쿼리들을 메모리에 올리기 pstmt.addBatch(); 3. executeBatch로 모아둔 쿼리들을 실행 (executeBatch는 처리결과로 int[] 타입의 값 반환) int[] result = pstmt.executeBatch(); 4. commit conn.commit(); 5. 예외발생시 rollback catch ..
[JAVA 웹 개발 공부] 국비지원 43일차 - PreparedStatement, JOIN, 트랜잭션, MySQL 반복문, 조건문, Constraint 메소드에 예외 선언하기 - throws 예외를 메서드의 throws에 명시하는 것은 예외를 처리하는 것이 아니라, 자신(예외가 발생할 가능성이 있는 메서드)을 호출한 메서드에게 예외를 전달하여 예외처리를 떠맡기는 것이다. https://ej-development-note.tistory.com/24 인터페이스 vs 추상 클래스 추상클래스는 인터페이스와 유사하다. 이들은 객체화할 수 없고 주로 구현이 안 된 메소드들로 이루어진다. 하지만 추상 클래스에서는 일반적인 필드도 선언할 수 있으며, 일반적인 메소드도 정의할 수 있다. 인터페이스에서 모든 메소드는 public, abstract가 된다. 자바에서는 하나의 클래스만 상속받을 수 있지만 여러 개 인터페이스를 동시에 구현할 수 있다. 1. 추상클래스 만약 관..
[JAVA 웹 개발 공부] 국비지원 41일차 - MySQL 문법, 함수, JDBC, 드라이버 적재, Connection MySQL 문법 *distinct 중복제거하기 select distinct job_id from employees; *두가지 기준으로 정렬해주기 select * from employees where department_id in (90, 60) order by department_id desc, salary asc; department_id로 내림차순 정렬 후, department_id가 같은 employees 내에서 salary로 오름차순 정렬 *세로로 결합해주기 주의점) 개수와 타입이 다른경우 결합X union은 수행에 있어서 속도가 느리기때문에 where절을 사용하는 것이 더 빠르다. union(중복제거) (select 'A', 'B', 'C') union (select 'D', 'E', 'F') ..
[JAVA 웹 개발 공부] 국비지원 40일차 - MySQL 테이블 생성, 외래키, 테이블 조회 MySQL 테이블 생성 *PK : primary key *NN : not null *AI : auto_increment table person, book create database if not exists my_db; show databases; use my_db; show tables; -- 이름 / 나이 -- 고정길이 문자열 / 가변길이 문자열(사이즈에 맞게 조절됨. 불필요한 공간 할당 줄일수 있음. 용량 줄일 수 있음.) create table person ( name varchar(10), -- 이름 가변길이문자열(길이제한10) age int -- 나이 정수형 ); select * from person; desc person; -- 행 정보 저장 insert into person (name, a..
[JAVA 웹 개발 공부] 국비지원 39일차 - 데이터베이스(DB), MySQL 프로젝트에 jar파일 추가하기 이클립스에서 내가 프로젝트 내에 있는 특정 클래스를 다른 프로젝트의 클래스에서 라이브러리처럼 사용하고 싶을 때 Jar파일로 압축하여 사용할 수 있다. *외부에서 jar파일 가져와서 다른 프로젝트에서 사용하기 프로젝트 우클릭 > Properties > Java Build Path > Libraries 탭 > Add External JARs > Apply and Close > jar 파일 선택 >import문 추가 *다른 프로젝트내에 있는 클래스 사용하기 프로젝트 우클릭 > Properties > Projects 탭 > Add > 프로젝트 선택 > Apply and Close > import문 추가 데이터베이스(DB) 1. 데이터베이스 데이터베이스를 한 마디로 정의하면 ‘데이터..
[JAVA 웹 개발 공부] 국비지원 38일차 - 전화번호부 프로그램, try-with-resources, 메모장 만들기, csv 파일 읽기 전화번호부 프로그램 public class Start { public static void main(String[] args) { UserInfos u = new UserInfos(); u.start(); } } import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; public class UserInfos implements UserInputEventListener { private Map users; private UserFrame frame; private UserFileRepository repo; public UserInfos() { users = new LinkedHashMap(); frame = new..
[JAVA 웹 개발 공부] 국비지원 37일차 - File 클래스, 입출력스트림 File 객체 File 클래스는 파일을 조작하고 검사하는 코드를 쉽게 작성하게 해주는 클래스이다. File 객체는 파일이 아닌 파일 이름을 나타내는 객체이다. FileWriter와 같은 클래스의 생성자에 이 File 객체를 넘겨서 실제로 파일을 생성할 수 있다. 만약 File 객체가 나타내는 파일이 존재한다면 프로그램은 파일의 속성을 조사하고 파일에 대한 여러 가지 동작을 수행할 수 있다. 예를 들면 파일의 이름을 변경한다거나 삭제하거나 권한을 변경할 수 있다. *File 객체 생성 File file = new File("D:\\myfile.txt"); *File 클래스 메소드 반환형 메소드 설명 String getName() 파일의 이름을 반환 String getPath() 경로를 반환 String g..
[JAVA 웹 개발 공부] 국비지원 29~36일차 - 팀프로젝트 <로또 프로그램> 주제 📢 로또 시뮬레에션 프로젝트 주제 선정 이유 ① 실제로 판매가 가능한 프로그램이 가능함. 상업성이 있다. ② 복잡한 자료 구조를 가지고 있다. → 자료를 다루는 연습을 하는 것. ③ 복잡한 자료를 GUI로 사용자가 편하게 사용할 수 있게 → GUI 다루는 연습 할 수 있음. 📢 로또 시뮬레에션 프로그램 목표 ① 자바 환경이 실행 가능한 개인 PC에서, 가상의 로또 시뮬레이션을 수행하고자 한다. ② GUI로 구성하며 프로그램을 반복해서 사용 가능하도록 진행한다. 📢프로그램 구성 계획 1차 ) 번호 선택 방법을 자동/수동/반자동, 세 가지 방법으로 구성하며, 결과 확인 버튼을 눌러 그 즉시 당첨 결과를 확인할 수 있다. 2차 ) 첫 화면을 추가로 만들어, 그 화면에서 로또 금액을 설정할 수 있다. 📢 ..
[JAVA 웹 개발 공부] 국비지원 28일차 - 이클립스 깃허브, 이클립스 리팩터링(refactoring) 이클립스 깃허브 *자바 깃 저장 Project 우클릭 > Team > Share Project > Create > Browse > Finish *기록하기 Team > Commit > class파일 Stage Changes로 옮기기 > Commit Message 입력하기 > Commit *깃 보기 Window > Show View > Other > History 검색 > History 창이 뜨면 프로젝트 클릭 > Histroy 보기 *Clone(프로젝트 처음 다운 받기) Window > Show View > Other > Git Repositories > Clone a Git ...( 오른쪽 노란아이콘 초록색 화살표) > Source Git Repositroy > Finish > 프로젝트 우클릭 > imp..
[JAVA 웹 개발 공부] 국비지원 27일차 - 컬렉션 프레임워크, HashSet, LinkedList, LinkedHashSet, HashMap 컬렉션 프레임워크(Collections Framework) 1. 컬렉션 프레임워크 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다. 2. 컬렉션 프레임워크의 핵심 인터페이스와 특징 인터페이스 특징 구현클래스 List 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다. 예) 대기자 명단 ArrayList, LinkedList, Stack, Vector 등 Set 순서를 유지하지 않는 데이터의 집합...
[JAVA 웹 개발 공부] 국비지원 26일차 - 컬렉션(collection), Iterator, ArrayList 컬렉션(collection) 1. 컬렉션 컬렉션은 애플리케이션의 작성을 도와주는 중요한 도구이다. 컬렉션은 자료를 저장하기 위한 구조이다. 대부분의 프로그램은 자료를 저장하여야 하고 따라서 어떤 자료구조를 사용할 것인지를 결정하여야 한다. 많이 사용되는 자료구조로는 리스트(list), 스택(stack), 큐(queue), 집합(set), 해쉬 테이블(hash table) 등이 있다. 컬렉션은 데이터를 저장하는 자료구조이다. 컬렉션은 제네릭 기법으로 구현되어 있기 때문에 어떠한 타입의 데이터도 저장할 수 있다. 2. 컬렉션의 종류 자바는 컬렉션 인터페이스와 컬렉션 클래스로 나누어서 제공한다. 인터페이스와 클래스들은 모두 java.util 패키지에 포함되어 있다. *컬렉션 인터페이스 인터페이스 설명 Coll..
[JAVA 웹 개발 공부] 국비지원 25일차 - 이벤트 처리, 내부 클래스, 익명 클래스 이벤트 처리 1. 이벤트 이벤트(event)란 사건 발생을 알리는 비동기적 알림이나 신호를 말한다. 이벤트는 사용자 인터페이스나 외부 I/O 장치, 프로그램의 다른 부분에서 발생한다. 사용자는 마우스 클릭, 키보드 입력을 통해 이벤트를 발생시키며, 외부 I/O 장치는 데이터 수집이 끝났거나 오류 조건이 되었을 때 이벤트를 발생시킨다. 이벤트는 주로 사용자가 컴포넌트(단추, 목록 등)를 이용해 발생시키며, 이를 통해 프로세스는 실행 중 사용자가 원하는 작업을 파악하고 그에 대응하는 작업을 수행하게 된다. 2. 이벤트 발생원 이벤트 발생원(event source)는 이벤트(알림, 신호)를 발생시키는 근원지를 의미한다. 마우스와 키보드 같은 I/O 장치, AWT나 스윙에서는 사용자와의 의사소통에 사용하는 컴포..
[JAVA 웹 개발 공부] 국비지원 24일차 - 화면 전환, tabbedPane, ImageIcon, 체크 박스, 라디오 버튼, 피자 메뉴판 만들기 화면 전환하는 창 만들기 import java.awt.CardLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; class TestCard extends JFrame implements ActionListener { private JButton btn1; private JButton btn2; private CardLayout cardLayout; private JPanel pnlCenter; public TestCard..
[JAVA 웹 개발 공부] 국비지원 23일차 - 배치 관리자, 레이아웃, GUI 활용 배치 관리자 1. 배치 관리자의 종류 종류 설명 FlowLayout 컨테이너에 추가되는 순서대로 컴포넌트를 부착한다. 위쪽에서 아래쪽으로, 왼쪽에서 오른쪽으로 배치한다. 패널의 기본 배치 관리자이다. BorderLayout 컨테이너의 영역을 동서남북, 중앙의 5개의 영역으로 구분하여 이 영역에 컴포넌트를 배치한다. 프레임의 기본 배치 관리자이다. GridLayout 컨테이너의 공간을 동일한 크기의 격자로 나누고 이 격자에 컴포넌트를 배치한다. CardLayout 컨테이너에 컴포넌트를 카드처럼 겹치게 쌓아서 배치한다. BoxLayout 컨테이너에 컴포넌트를 상자 쌓듯이 가로 또는 세로 방향 차례로 배치한다. 2. 배치 관리자를 설정하기 컨테이너에 배치 관리자를 설정하려면 먼저 new 연산자를 이용하여 배치..
[JAVA 웹 개발 공부] 국비지원 22일차 - 에러, 예외, 오류, 래퍼 클래스, 예외 처리, try-catch문, GUI, JFrame, JPanel 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생시점에 따라 '컴파일 에러'와 '런타임 에러'로 나눌 수 있는데, 글자 그대로 '컴파일 에러'는 컴파일 할 때 발생하는 에러이고 프로그램의 실행도중에 발생하는 에러를 '런타임 에러'라고 한다. 이 외에도 '논리적 에러'가 있는데, 컴파일도 잘되고 실행도 잘되지만 의도한 것과 다르게 동작하는 것을 말한다. *컴파일 에러 : 컴파일 시에 발생하는 에러 *런타임 에러 : 실행 시에 발생하는 에러 *논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 자바에서는 실행 시(runtime) 발생할 수 있는 프로그램 오류를 '에러'와..
[JAVA 웹 개발 공부] 국비지원 20, 21일차 - 팀프로젝트 <호텔 객실 예약 프로그램 만들기> 주제 호텔의 데스크 직원이 사용할 수 있는 호텔 객실 관리프로그램 만들기 1. 객실 정보 객실은 2층부터 5층까지 각 층마다 20개씩 있다. 방 번호는 3자리 정수이며, 첫자리는 층수를 의미한다. (201, 301, ... ) 방 타입은 싱글과 더블이 있다. *싱글 : 방번호의 끝자리 수는 홀수 *더블 : 방번호의 끝자리 수는 짝수 2. 기능 *현재 객실 상태를 확인 가능(예약중, 투숙중, 빈 객실) *빈 객실 보기(몇 개 있는지, 몇 호실인지 알려주기) *예약된 객실 보기(몇 개 있는지, 몇 호실인지 알려주기) *투숙중인 객실 보기(몇 개 있는지, 몇 호실인지 알려주기) *각 객실의 고객의 기본 정보(이름, 전화번호 등)를 확인 가능 *객실 상태 변경 기능(예약중 → 빈 객실) 프로그램 만들 때 생각하..
[JAVA 웹 개발 공부] 국비지원 19일차 - 동적 바인딩, 상속, 구성, 추상 클래스, 인터페이스, compare()와 compareTo(), 디폴트 메서드 동적 바인딩 1. 바인딩 메소드 호출을 실제 메소드의 몸체와 연결하는 것을 바인딩(binding)이라고 한다. 자바가상머신(JVM)은 실행 단계에서 변수가 참조하는 객체의 실제 타입을 보고 적절한 메소드를 호출하게 된다. 이것을 동적 바인딩(dynamic binding)이라고 한다. 2. 동적 바인딩 오버라이드된 메소드 호출이 컴파일 시간이 아닌 실행 시간에 결정되는 메커니즘을 의미한다. 오버라이드된 메소드가 부모 클래스 참조를 통하여 호출되는 경우에 객체의 타입에 따라서 서로 다른 메소드가 호출되게 하는 메커니즘이다. 즉 객체의 실제 타입이 호출되는 메소드를 결정하는 것이다. 상속 vs 구성 상속과 아주 유사하지만 상속과는 미묘하게 다른 구성(composition)이라는 기법이 있다. 구성은 클래스가 ..
[JAVA 웹 개발 공부] 국비지원 18일차 - 상속, 다형성, 업캐스팅, 다운캐스팅, 오버라이딩, Object, super 상속 1. 상속 상속(inheritance)은 기존에 존재하는 클래스로부터 필드와 메소드를 이어받고, 필요한 기능을 추가할 수 있는 기법이다. 상속을 이용하면 여러 클래스에 공통적인 코드들을 하나의 클래스로 모을 수 있어서 코드의 중복을 줄일 수 있다. 2. 상속의 형식 자바에서 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써 주기만 하면 된다. class 자식클래스 extends 부모클래스 {} 상속하는 클래스를 조상 클래스라고 하고 상속받는 클래스를 자손 클래스라고 한다. *조상 클래스 : 부모(parent)클래스, 상위(super)클래스, 기반(base)클래스 *자손 클래스 : 자식(child)클래스, 하위(sub)..
[JAVA 웹 개발 공부] 국비지원 17일차 - 다차원 배열, 2차원 배열, binarySearch(), deepToString() 다차원 배열 *2차원 배열의 선언과 인덱스 int[][] score = new int[4][3]; // 4행 3열의 2차원 배열을 생성한다. 2차원 배열의 index 2차원 배열은 행(row)과 열(column)로 구성되어 있기 때문에 index도 행과 열에 각각 하나씩 존재한다. 행의 index 범위는 '0 ~ (행의길이-1)' 이고, 열의 index 범위는 '0 ~ (열의길이-1)' 이다. 그리고 2차원 배열의 각 요소에 접근하는 방법은 '배열이름[행index][열index]'이다. int[][] score = new int[4][3]; // 4행 3열 2차원 배열 score를 생성 score[0][0] = 100; // 배열 score의 1행 1열에 100을 저장 System.out.println(..
[JAVA 웹 개발 공부] 국비지원 16일차 - 배열의 출력, 길이 변경, 복사, 비교, 정렬하기, 가변인자 배열의 출력 'Arrays.toString(배열이름)' 메서드를 사용하여 출력할 수 있다. 이 메서드는 배열의 모든 요소를 [첫번째 요소, 두번째 요소, ...] 와 같은 형식의 문자열로 만들어서 반환한다. Arrays.toString()을 사용하려면, 'import java.util.Arrays;'를 추가해야 한다. // 배열 출력하기 int[] iArr = { 100, 95, 80, 70, 60 }; System.out.println(Arrays.toString(iArr)); // [100, 95, 80, 70, 60] 예외적으로 char 배열은 println 메서드로 출력하면 각 요소가 구분자 없이 그대로 출력되는데, 이것은 println 메서드가 char 배열일 때만 이렇게 동작하도록 작성되었기 ..
[JAVA 웹 개발 공부] 국비지원 15일차 - 배열의 선언과 생성, 배열의 길이와 인덱스, 배열의 초기화 배열 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열(array)'이라고 한다. 변수 대신 배열을 이용하면 다뤄야할 데이터의 수가 아무리 많아도 배열의 길이만 바꾸면 되기 때문에 많은 양의 데이터를 손쉽게 다룰 수 있다. 배열의 선언과 생성 원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 타입 뒤에 붙인다. 배열을 선언한 다음에는 배열을 생성해야 한다. 배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다. 배열을 생성하기 위해서는 연산자 'new'와 함께 배열의 타입과 길이를 지정해 주어야 한다. 타입[] 변수이름; // 배열을 선언 (배열을 다루기..
[JAVA 웹 개발 공부] 국비지원 14일차 - toString(), StringBuilder, StringJoiner, StringTokenizer, LocalDate, Calendar 클래스, 달력 만들기, 디데이 구하기 toString() 자바에서는 객체의 문자 값이 필요한 경우 toString()이 호출되게 설계되어 있다. toString()은 인스턴스에 대한 정보를 문자열(String)로 제공할 목적으로 정의한 것이며, 객체가 문자로 취급될 때 사용되는 메서드로 객체가 자신의 정체성을 드러내는 하나의 수단이다. 인스턴스의 정보를 제공한다는 것은 대부분의 경우 인스턴스 변수에 저장된 값들을 문자열로 표현한다는 뜻이다. 클래스를 작성할 때 toString()을 오버라이딩하지 않고 호출하면 클래스이름에 16진수의 해시코드를 얻게 될 것이다. toString()은 일반적으로 인스턴스나 클래스에 대한 정보 또는 인스턴스 변수들의 값을 문자열로 변환하여 반환하도록 오버라이딩되는 것이 보통이다. 가비지 컬렉션 1. 히프 메모리(..
[JAVA 웹 개발 공부] 국비지원 13일차 - 자바 간단한 프로그램 만들기(커피 만들기, 펜으로 이름 쓰기, 원 만들기, 동물 사육사) 커피 만들기 프로그램 (1) 커피 이름, 가격, 사이즈, 얼음유무(핫/아이스) 아메리카노 2000 / 카페라떼 2500 / 카페모카 2600 사이즈 small : 기본가격 / medium : +500 / large : +1000 (2) 주문서 이름, 사이즈, 얼음유무(핫/아이스), 체크(완료유무) (3) 바리스타 커피 만들기(주문서) *커피 클래스 *주문서 클래스 *바리스타 클래스 *테스트 *결과 펜으로 자기이름 쓰기 프로그램 (1) 펜 클래스 글쓰는 기능 (2) 사람 클래스 펜으로 자기이름 쓰는 기능 *펜 클래스 *사람 클래스 *테스트 *결과 원 만들기 프로그램 (1) 2차원 평면상의 좌표를 나타내는 point 클래스 가로 좌표 x, 세로 좌표 y (2) 2차원 평면상에 중심점을 가지는 원 중심점 가로..
[JAVA 웹 개발 공부] 국비지원 12일차 - 자바 간단한 프로그램 만들기(학생 성적 관리, 자판기, 인형 만들기) 학생 성적 관리 프로그램 (1) 3명의 학생의 국어, 영어, 수학 점수를 입력받기 (2) 3명의 학생 점수의 총합, 평균을 콘솔로 출력하기 *학생 클래스 *학생관리 클래스 *결과 자판기 프로그램 (1) 음료 클래스 이름, 가격, 용량 (2) 자판기 클래스 음료 인스턴스를 생성해서 반환하는 기능 (3) 파라미터 입력값에 따라 음료 반환 ("콜라", 1900, 250) ("사이다", 1700, 250) ("커피", 1800, 210) *음료 클래스 *자판기 클래스 *확인 *결과 인형 만들기 프로그램 (1) 인형 클래스 종류, 가격 (2) 인형 공장 클래스 동작으로 인형 만들기 *인형 클래스 *인형 공장 클래스(ver.1) *테스트(ver.1) *결과 *인형 공장 클래스(ver.2) *테스트(ver.2) *결과
[JAVA 웹 개발 공부] 국비지원 11일차 - 패키지, import문, 정적 멤버(static member), Math 클래스 패키지(package) 패키지는 폴더와 동일한 개념이다. 관계가 밀접한 클래스와 인터페이스를 묶은 단위이다. 클래스 관리가 편해지며, 클래스 간 이름 충돌을 방지하기도 한다. 또한, 패키지는 패키지 내에 선언된 클래스에 대하여 접근 보호 기능도 있다. +) 패키지이름 명명 규칙 패키지명이 중복되지 않도록 회사의 도메인 이름 역순으로 패키지 이름을 지어준다. import문 코드를 작성할 때 다른 패키지의 클래스를 사용하려면 패키지명이 포함된 클래스 이름을 사용해야 한다. import문의 역할은 컴파일러에게 소스파일에 사용된 클래스의 패키지에 대한 정보를 제공하는 것이다. 컴파일 시에 컴파일러는 import문을 통해 소스파일에 사용된 클래스들의 패키지를 알아 낸 다음, 모든 클래스 이름 앞에 패키지명을 붙여..
[JAVA 웹 개발 공부] 국비지원 10일차 - 접근제어자, 접근자와 설정자, 메서드 오버로딩, 생성자 접근제어자 접근 제어자는 멤버 또는 클래스에 사용되어, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다. 클래스나 멤버변수, 메서드, 생성자에 접근 제어자가 지정되어 있지 않다면, 접근 제어자가 default임을 뜻한다. 제어자 범위 대상 public 접근 제한이 전혀 없다. 클래스, 메서드, 멤버변수 protected 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서만 접근이 가능하다. 메서드, 멤버변수 (default) 같은 패키지 내에서만 접근이 가능하다. 클래스, 메서드, 멤버변수 private 같은 클래스 내에서만 접근이 가능하다. 메서드, 멤버변수 ​ 접근자와 설정자 클래스 안에 변수를 선언할 때 private을 붙이게 되면 외부로부터의 접근이 차단된다. ..
[JAVA 웹 개발 공부] 국비지원 9일차 - 이클립스 설치 및 사용, Eclipse 단축키, do-while문, 삼항연산자, 객체지향 프로그래밍 IDE ​통합 개발 환경(IDE)이란 프로그래머가 소프트웨어 코드를 효율적으로 개발하도록 돕는 소프트웨어 애플리케이션이다. 코드편집기, 디버거, 컴파일러, 인터프리터 등을 포함하고 개발자에게 제공한다. 대표적으로 이클립스, 인텔리제이 등이 있다. ​ Eclipse 설치 및 환경설정 1. Eclipse 설치하기 https://www.eclipse.org/downloads/ Eclipse Downloads | The Eclipse Foundation The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and ..
[JAVA 웹 개발 공부] 국비지원 8일차 - 중첩 for문, break문, switch문, 예제 문제 중첩 for문 if문 안에 또 다른 if문을 넣을 수 있는 것처럼, for문 안에 또 다른 for문을 포함시키는 것도 가능하다. 중첩 for문은 반복문속에 반복문이 있는 구조로 외부 반복문과 내부 반복문의 변수의 값 변화에 유의해야 한다. ​ ex) 구구단 출력하기 안쪽 for문은 단을 출력하며, 바깥쪽 for문은 안쪽 for문을 2단부터 9단까지 8번 반복해서 출력한다. 바깥쪽 for문이 한번 반복될 때마다 안쪽 for문의 모든 반복이 끝나고서야 바깥쪽 for문의 다음 반복으로 넘어간다. ​ break문 1. break문 break문은 루프 내에서 조건식의 판단 결과와 상관없이 반복문을 완전히 빠져나가고 싶을 때 사용한다. 반복문 안에서 break문을 만나면 반복문을 빠져나가서 반복문 다음으로 이동하게..
[JAVA 웹 개발 공부] 국비지원 7일차 - 반복문 for문, 예제 문제 반복문 for문 for문과 while문은 구조와 기능이 유사하여 어느 경우에나 서로 변환이 가능하다. for문은 주로 반복 횟수를 알고 있을 때 사용한다. ​ for (초기화; 조건식; 증감식) { // 조건식이 참일 때 수행될 문장들을 적는다. } ​ ex1) 10부터 20까지 순서대로 출력 ex2) 40 ~ 30까지 역순으로 출력 ex3) 100 ~ 200 사이의 3의 배수 출력, 3의 배수의 개수 출력 ex4) 1 4 7 10 13 16 19 출력 ​ ​ 예제 문제 사용자가 입력한 5개의 정수 중 가장 큰 값을 출력하기 ​ 피보나치 수열 출력하기 (100이하의 정수) 1 1 2 3 5 8 13 21 34 ​ FizzBuzz 출력하기 (100이하의 정수) 3의 배수 Fizz 5의 배수 Buzz 3의 ..
[JAVA 웹 개발 공부] 국비지원 6일차 - 반복문 while문, 예제 문제 반복문 while문 if문처럼 조건식과 블럭{}만으로 이루어져 있다. 다만 if문과 달리 while문은 조건식이 '참(true)인 동안', 즉 조건식이 거짓이 될 때까지 블럭{} 내의 문장을 반복한다. ​ while (조건식) { // 조건식의 연산결과가 참(true)인 동안, 반복될 문장들을 적는다. } ​ ex1) 구구단 중 원하는 단수 입력받아 결과를 출력하기 ​ ex2) 0 이상 100 이하의 수 중에서 8의 배수 출력하기 ​ ex3) 0 이상 100 이하의 수 중에서 4의 배수이거나 7의 배수인 정수를 출력하기 ​ ex4) 0 초과 100 미만의 수 중에서 일의 자리 수가 3 또는 6 또는 9인 정수를 출력하기 ​ ​ 예제 문제 문자열 모음 세기 사용자에게 문자열을 입력받아 모음의 개수를 출력하..