본문 바로가기

백엔드개발자 준비하기 - 심화과정

[230530] 개발일기 쓰기 쉽지않다...

생각보다 해야할게 너무 많음... 

 

자바

  • 객체지향의 특징
  • 객체지향 5대원칙 SOLID
  • 람다, 익명클래스
  • 프로퍼티스랑 스트림

DB

  • DB와 연결하기 까지의 과정
  • 그것에 사용되는 클래스 및 용도
  • DAO, DTO 의 개념에 대해 정확히 알기
  • 조인 종류랑 사용법

수업내용 

  • 로또, 달력, 숫자야구 프로그램 이해하고 주석달기
  • 정보처리기사 프로그램 파일, DB 다시 풀어보기
  • 정보처리기사 프로그램 파일, DB 이해하고 주석달기
  • 게시판 프로그램 객체지향에 맞게 분리된거 이해하고 주석달기

 

필기 백업...

[지금까지 진행한 프로그램]
로또 프로그램     - 3개의 클래스 - 객체들간의 관계
달력 프로그램     - 2개의 클래스 - 코어클래스 서비스클래스
숫자야구 프로그램 - 3개의 클래스 - 헬퍼클래스
정보처리기사(파일)- 4개의 클래스 -> 실행 / 데이터 / 로직
정보처리기사(DB)  - 6개의 클래스 -> 파일 + 2개(ConnectionManager + DAO)
게시판 프로그램   - 5개의 클래스

see - know - understanding - practice - doing

프로젝트 퀄리티는 상향 개발자 능력은 하향
 -> 등장한게 프레임워크
 : 기본적인 기능들을 다 만들어놓고 필요한것만 빼서 사용하자(관제 시스템)

[기사 퀴즈로 객체지향 예시] - 객체지향 오원칙 중 단일 책임 원칙!
Test Center
 - 여기서는 실행만 함
 - main문 존제 
 - 따로 문제풀이 로직이 돌아가는 메소드가 있고 그걸 불러서 사용
 - 언제든지 다른 메소드 불러서 사용가능함

GisaQuiz
 - 실질적인 동작이 일어나는 클래스
 - DB랑 함께 사용할때 로직을 짜서 변수로 DAO에게 넘겨줌
 - main에서 여기있는 메소드를 불러 사용

DAO
 - DB랑 연결(연결만 전담하는 ConnectionManager 클래스 따로 분리 가능
 - DB에 있는 내용 업데이트(DB CRUD는 여기서 일어남)
 - 로직 자체는 GisaQuiz에 있지만 실질적으로 DB에 작용하는 클래스는 DAO
 - DB와만 연결하고 DB에 처리해야할 내용 담당

통상적으로 문제해결을 위한 절차 : 받은 Data를 기반으로 DB에서 데이터 들고옴
중간에 문제가 생겼을 경우 비즈니스 쪽에서 예외 처리
 - 원래라면 쿼리는 비즈니스 로직에 있어야 하는데 쿼리문은 중간 결과 값(완전하게 처리되지 않고 단순히 데이터를 들고오기만 한 것)이라 최종결과 처리를 하는 비즈니스쪽에 두는 것 보다는 DAO에 두는 경우가 많다
 - 기본적으로 이미 있는 메뉴 내용(고정된 쿼리)는 DAO에, 고정된 쿼리가 아닌 새로운 쿼리는 비즈니스 로직에
 - 결론적으로 이론상으로는 쿼리를 비즈니스 쪽에 두는게 맞지만 대부분은 DAO에 쿼리가 있음

비즈니스 모델에는 DB용어를 쓰면 안됨 
ex) delete -> remove, select -> read

java bin : object라는 뜻(스프링에 보면 bins라는 말이 나오는데 전부 오브젝트라는 뜻)
데이터를 담당하는 오브젝트 : 데이터빈
로직 처리하는 오브젝트 : 액션빈(jsp에서 로직을 처리하는 태그가 액션태그인 이유)

PreparedStatement 사용 이유
첫번째 이유 : 1000개의 행을 넣어야 해도 쿼리문은 하나로 고정되어 있기 때문에 1개만 사용가능함
두번째 이유 : 오브젝트로 저장이 가능하기 때문
세번째 이유 : +나 append를 사용할 경우 에러가 날 가능성이 높음, 많은 데이터를 집어넣을때 사용이 용이

batch 기능
 - 한꺼번에 모아서 DB에 입력
 - 만약에 1000개의 데이터가 입력되지 않는다면 에러처리를 해야한다(트랜잭션)

상속
 - 상위클래스를 상속받은 하위클래스에서는 무조건 상위클래스의 생성자나 슈퍼를 우선적으로 선언해야 한다
 - 상위 클래스의 필드에 있는 값들을 사용하려면 무조건 먼저 상위클래스를 불러야 함
 - 타입 변수이름 = new 객체(); -> 생성자

 

책 얼른 받았음 좋겠다... 나도 자바 이론 공부좀 해볼래...

(디스코드에 공부해야할 내용 정리되어있음 확인하기)

(내일은 객체지향 5대원칙 블로그에다 정리해보기)