서울교통공사 별도 교육 커리큘럼

교육 목표

- 본 교육은 프로그래밍 언어인 JAVA 와 .NET 그리고 SQL에 대해 교육이 진행되며 각 언어의 기초 프로그래밍에 초점을 두고 핵심적으로 학습하여 훈련생이 선수지식이 없더라도 각 언어의 대한 원리 및 기초지식을 습득할 수 있도록 진행된다.   본 교육을 통해 프로그래밍의 원리 및 기초 프로그래밍에 대한 구조와 기능을 이해할 수 있으며 훈련생이 직접 다양한 예제를 통해 구현하는 것을 목표로 한다.

또한 본 교육의 훈련생은 추후 데이터 분석 및 시각화에 대한 업무를 수행하는 것을 목표로 하고 있으며 이를 위해 각 파트를 진행하며 보다 다양한 예제 및 원리를 설명할 예정이다.

훈련생

- 선수지식은 없으나 추 후 프로젝트 관리 및 솔루션 관리·개발자로서 업무를 진행

교육 일정

- 일일 8시간 진행 예정, 10일 총 80시간 진행 / 2018. 03. 05 ~ 2018. 03. 16

JAVA (32 시간, 4 일)
JAVA 기초 프로그래밍	도구 준비	* 자바 언어에 관해 * Jdk 다운로드 * Jdk 인스톨 * Eclipse 인스톨
	Hello World	* 프로젝트와 패키지 작성 * 자동작성된 프로그램 확인 * 프로그램 완성 * 프로그램 실행
	프로그램 구성 요소	* 클래스와 메서드 * 주석문 * 상수란 * 변수란 * 변수 작성법
	변수 사용법	* 변수끼리 대입하기 * 변수선언 * 키보드로부터 입력해서 변수에 값을 대입하기 * Input 클래스 작성 * getInt() 메서드 * 다양한 데이터 입력받기 * 변수를 사용해서 계산하기 * 자동형변환 규칙 이해하기
	이해하기 쉽게 표시하는 방법	* System.out.println으로 값을 표시하기 * System.out.print로 옆으로 출력하기 * 이스케이프 문자 처리 * System.out.printf로 소수점 이하 정리 * 복수개의 변수 표시하기
	기본적인 연산자와 메서드 사용법	* 연산자 - 나머지 연산자(%) - 증가 연산자((++) - 감소 연산자(--) - 전치와 후치 - 복수대입연산자 - 연산자의 우선순위 * 클래스 메서드란 - Math 클래스의 클래스 메서드 * 인스턴스 메서드란 * String 클래스의 인스턴스 메서드
	날짜 시간과 파일 처리	* 날짜 객체 작성 - 특정한 날짜 생성 * 날짜 객체로부터 값을 얻어내기 - 한글 요일명 얻어내기 * 날짜의 계산과 비교 * 시간 처리 * 텍스트 파일 쓰기 - TextWriter클래스의 API * 텍스트 파일 쓰기 - TextReader클래스의 API
	조건에 따른 처리	* If문(만약 ~라면)처리 * True/false를 리턴하는 메서드를 조건에 사용 - 문자열 비교 - 날짜/시간 비교 * 여러가지 조건 결합(.if else if else) * 많은 처리 중에 선택하기(switch)
	반복문	* While(횟수를 알수 없을 때) * Null이 아닌 동안 반복 * 텍스트파일로부터 입력 * CSV파일 처리 * For(횟수를 지정할 경우) * Break(루프 중지), continue(루프 스킵)
	클래스/ 메서드 작성 과 사용	* 클래스와 메서드 작성 * Import 문 이용 * 매개변수가 있는 메서드 작성 * 값을 리턴하는 메서드 작성 * 가변형 인수 사용

.NET (24 시간, 3일)
C# 프로그래밍	Visual C#의 특징	* OS 란 * 어플리케이션이란 * 프로그램과 프로그래밍언어 * Visual C#의 특징 * Visual Studio Community 2017 다운로드와 설치 * 닷넷 데스크톱 어플리케이션을 떠받치는 기술 - 중간 코드 * 프로그램을 실행
	데스크탑 어플리케이션 작성	* 레이블과 버튼 배치 * 소스 코드 입력 - 이벤트 핸들러 자동 작성 - 소스 코드 입력 * 프로그램 실행 - 디버거 시작 * 실행가능한 형식으로 파일 작성 - 빌드 실행 - 작성된 실행가능한 파일 확인
	프로그램의 구조	* 클래스 - 클래스란 - 오브젝트란 - 이름공간이란 * 프로퍼티와 메서드 - 프로퍼티 사용법 - 메서드 사용법 : 처리만을 하는 메서드 : 매개변수를 지정하는 메서드 : 리턴값을 돌려주는 메서드 * 변수와 데이터형 - 변수의 역할 - 데이터형이 필요한 이유 - 변수를 사용한 프로그래밍 * 연산자의 종류와 사용 - 대입연산자 - 산술연산자 - 연결연산자 - 비교연산자 - 논리연산자 * 소비세 계산 프로그램 작성 및 실행
	프로그램의 제어	* 조건 분기 - If .. else 문 - If .. else if .. else 문 - Swith 문 * 성적판정 프로그램 작성 및 실행 * 반복 처리 - For 문 - While 문 - Break 문
	배열과 구조체의 이해	* 배열 사용하기 - 배열 변수의 선언 - 배열 변수에 값을 넣기 - 배열 변수를 이용한 프로그램 작성 및 실행 * 다차원 배열 - 2차원 배열의 선언 - 2차원 배열의 요소에 값을 대입 - 2차원 배열을 이용한 프로그램 작성 및 실행 * 구조체 - 구조체 사용 - 구조체를 사용한 프로그래밍 작성 및 실행
	객체 지향 프로그래밍	* 객체 지향과 클래스의 관계 * 클래스 작성 : 클래스의 정의 : 클래스의 스코프 : 클래스 멤버의 스코프 : 필드 정의 : 필드를 캡슐화 해야하는 이유 * 상속과 오버라이드 : 메서드 오버라이드 란? : 수퍼클래스와 서브클래스 작성 : 다형성(=폴리모피즘)이란? : 동적으로 호출을 나누기 * 인터페이스 : 인터페이스란? : 인터페이스의 정의 : 인터페이스의 구현

SQL (24 시간, 3 일)
SQL	기본문법과 4대 명령	* SQL의 기본 룰 * 데이터 형과 리테럴 * SQL의 명령 체계 * SELECT문 – 데이터 검색 * UPDATE문 – 데이터 갱신 * DELETE문 – 데이터 삭제 * INSERT문 – 데이터 추가
	행에 조건을 주기	* WHERE구를 사용하여 조건주기 * 다양한 비교 연산자 * 복수개의 조건을 합치기 * 주키와 필요성
	검색 결과 가공	* 식과 연산자 * 문자열을 다루는 함수 * 수치를 다루는 함수 * 날짜를 다루는 함수 * 변환을 다루는 함수
	식과 함수	* 변수끼리 대입하기 * 변수선언 * 키보드로부터 입력해서 변수에 값을 대입하기 * Input 클래스 작성 * getInt() 메서드 * 다양한 데이터 입력받기 * 변수를 사용해서 계산하기 * 자동형변환 규칙 이해하기
	집계와 그룹화	* 데이터 집계 * 집계 함수의 사용법 * 데이터를 그룹화해서 나눔
	서브쿼리	* 검색결과를 근거해서 표를 조작하기 * 단일 값 대신에 서브쿼리 사용하기 * 복수 값 대신에 서브쿼리 사용하기 * 표 대신에 서브쿼리 사용하기
	복수 테이블 결합	* 관계형 의 의미 * 테이블 결합 * 결합 조건 다루기 * 결합과 관련된 다양한 구문
	트랜젝션	* 정확한 데이터 조작 * 커밋과 롤백 * 트랜잭션 분리 * 락 활용
	테이블 작성	* SQL 명령의 종류 * 테이블 작성 * 제약 * 외부키와 참조정합성