Developer Note 86

24년 10월 15일

사서의 도서 대여 작업 mvc 패턴사서가 도서 대여를 해주기 위해서는 유저의 정보를 받아야함. 우선 사서계정이 권한이 있는지 확인 → 사서의 세션정보 요청(getSession) → 정보 반환→ 가입한 회원인지 확인 → 회원정보 요청(getUserInfo) → 정보 반환 책의 정보 확인(getBook) → 책 정보 반환 → 책이 대여된 상태인지 확인→ 책이 있다면 대여해줌 getBook에서 대여여부 확인하려면 정규화 과정에 약간 어긋난다고함. 결합도 낮추는 법 : 인터페이스를 따로 만들어서 구현한다. 클래스에 커서대고 오른쪽 클릭 → Refactor → extract interface → 인터페이스를 만든다. 자동으로 원래 파일의 메소드들이 오버라이딩으로 바뀌고 인터페이스에서 정의가 된다.

24년 10월 14일

세션이란 :• 클라이언트로부터 오는 일련의 요청을 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술클라이언트가 웹 서버에 접속해있는 상태가 하나의 단위(지금 하는 수업을 예로 보자면 로그인이 되어있거나 이런 상태를 하나의 단위로 보는 그런 것)presentation layer : 사용자에게 보여주는 화면Control layer :business layer :persistance layerdomain model layer :트랜잭션이란?데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 뜻함.※ 즉 쿼리문을 사용해서 데이터베이스에 영향을 주는 상태를 말하는 것이다.트랜잭션의 특징원자성 : 트랜잭션이 모두 DB에 반영되던가 , 아니면 아예 반영되지 않아야 한다는 것이다.일관성 : 작업처리 결과가..

24년 10월 11일

오늘은 User(사용자) 입장에서의 도서관리 프로그램 기능구현.사용자 입장에서의 CRUD 의 구성. Insert(1) : 회원가입Update(2) : 회원정보수정Delete(3) : 회원탈퇴Select(4) : 회원정보조회SelectAll(5) : 관리자가 회원전체정보조회LogIn(6) : 로그인LogOut(7) : 로그아웃 오늘은 사용자(User) 입장에서의 도서 관리 프로그램을 구현한다.사용자 입장에서의 CRUD 구성 ServiceNo.InsertUpdateDeleteSelectSelectAllLoginLogOut어제 한대로 기본적인 순서부터 적어보자면 뷰에서 사용자에게 입력을 받는다. 받아서 컨트롤러에서 요청을 처리하는데 , 어디로 처리하냐 ?private void init() { System.o..

24년 10월 10일

JUnit5 이란 ?자바 개발자가 가장 많이 사용하는 테스팅 기반 프레임워크도서관리 프로그램 만들기 과정 수업.CRUD 적용 MVC 패턴 JDBC사용MVC 패턴 구조 동작 순서※ MVC 패턴의 구성MODEL : 프로그램 데이터와,비즈니스 로직을 담당domain.dto : 데이터 전송객체 ex)bookDto는 도서 정보를 담는 클래스domain.dao : db와의 상호작용을 담당하는 클래스. CRUD 작업을 수행한다.domain.service : 비즈니스 로직을 처리하는 계층. dao를 호출하여 데이터를 처리하고, 필요한 비즈니스 규칙을 적용한다.VIEW : user에게 정보를 표시, 입력을 받는 ui 계층view : UI를 구성하는 패키지CONTROLLER : user 입력을 처리하고 모델과 뷰를 연결하..

24년 10월 7일

UML : 통합 모델링 언어.모델을 만들고 설명하는 표준언어다른 사람들과의 협업에 필요하다.UML 형식으로 의사소통을 하면 의미가 명확하고 설계에 대한 논의가 순조롭게 이루어진다.전체 시스템 구조와 클래스의 의존성을 파악하기 쉽다.클래스간의 의존성을 나타내주기 때문에 설계를 세분화할 수 있다.클래스 다이어그램클래스들간의 관계를 나타내는 관계도구조 다이어그램 과 행위 다이어그램으로 나눌수 있다.구조 다이어그램 : 각 요소들의 정적인 면을 보기위한 다이어그램.행위 다이어그램 : 요소들의 동적인 면을 보기 위한 다이어그램.그리는법class: 클래스는 보통 3개의 구역으로 나눈 사각형으로 그린다.이름 , 속성 , 기능을 표기할 수 있으며 이름만 필수로 명시한다.클래스의 세부사항은 필드와 메서드의 [접근 제한자 ..

24년 10월 4일

오전자바의 디자인 패턴디자인 패턴이란 ?특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다.특정한 소스나 기계코드는 아니고 , 여러 상황에 맞게 사용될 수 있는 문제들을 해결할 때 쓰이는 템플릿 같은 형식.디자인 패턴은 개발자가 시스템을 디자인할 때 공통된 문제들을 해결하는데 쓰이는 형식화 된 가장 좋은 관행이다.(간단하게 보고 넘어가자)디자인 패턴의 종류생성 패턴싱글톤(중요) : 클래스의 인스턴스가 1개여야만 하는 패턴인스턴스 생성을 제어할 수 있어야한다.유일한 인스턴스에 쉽게 접근할 수 있어야한다.빌더(중요) : 복잡한 객체의 생성방법과 표현방법을 분리하기 위해 사용별도의 builder 클래스를 만들어 값을 입력받아 최종적으로 build() 메서드를 통해 인스턴스를 생성해서 리턴한..

24년 10월 2일

오전프로세스란 ?단순하게 말하자면 현재 실행중인 프로그램이다.사용자가 작성한 프로그램이 메모리 공간을 할당받아 실행 중인 것.이런 프로세스에는 데이터 , 메모리 등의 자원 그리고 스레드로 구성됨스레드란?프로세스 내에서 작업을 수행하는 주체를 말한다.모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다.스레드가 하나일 때는 싱글스레드, 2개 이상일 때는 멀티스레드 라고한다.(스레드를 예로 들어보자면 가게에서 역할을 분담해서 일을 하는 사람 객체 하나 하나를 스레드라고 보면 될 것 같다.)스레드의 생성과 실행스레드를 생성하는 방법에는 두가지 방법이 있다.Runnable 인터페이스를 구현하는 법Thread 클래스를 상속받는 법스레드의 메서드Thread.sleep(10); : 0.01 초간 스레드를..

24년 10월 1일

JDBC : 자바 프로그래밍 언어로 데이터베이스에 접근 할 수 있도록 하는 JAVA API (중요)※ JDBC API 를 이용하여 DB에 연동할 수 있으며 , 데이터베이스에서 자료를 쿼리하거나 업데이트할 수도 있다 . !JDBC API 사용단계JDBC 드라이버 로드Connection 객체 생성STATEMENT 객체 생성SQL 문 전송(쿼리 실행)ResultSet 객체로부터 데이터 조회ResultSet 객체 CloseStatement 객체 closeConnection 객체 Close각 단계별 자세히 설명JDBC 드라이버 로딩 : 사용하고자 하는 JDBC 드라이버를 로딩한다. JDBC 드라이버는 DriverManager 클래스를 통해 로딩된다.Connection 객체 생성 : JDBC 드라이버가 정상적으로 ..

24년 09월 30일

자바 io 프로그래밍 개념자바에서 입출력을 수행하려면 키보드 - 마우스 등을 연결하려고 하 무엇인가가 필요한데 이 때 이것을 스트림(Stream) 이라고 한다.스트림이란 ??사전적 의미는 ‘시냇물’데이터를 운반하는데 사용되는 연결통로 , 흐름프로그램이 외부에서 데이터를 읽거나 외부로 데이터를 출력하는 작업이 빈번하게 일어나는데 이때 데이터는 어떠한 통로를 통해서 데이터가 이동된다.이 때 이 통로를 Stream 이라고 한다.다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것 (그 전까지는 List , Set , Map 등의 사용방법이 서로 달랐다.)입출력 스트림에는 InputStream , OutputStream 이 존재하는데 단일 방향으로 연속적으로 흘러간다.Java.io 패키지의 주요 클래스 설명F..

24년 09월 27일

Map 이란 ?Map은 리스트나 배열처럼 순차적으로(sequential) 해당 요소 값을 구하지 않고 key를 통해 value를 얻는다.맵(Map)의 가장 큰 특징이라면 key로 value를 얻어낸다는 점이다. 특징1. 요소의 저장 순서를 유지하지 않습니다.key :  중복을 허용  Xvalue :  중복은 허용 O Set :  Set 인터페이스는 List와 유사하지만 중복이 허용되지 않고 기본적으로는 순서가 유지 되지 않습니다. 구현 클래스로는 HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet 등이 있으며 가장 널리 사용되는것은 HashSet 입니다. 순서가 필요한 경우 LinkedHashSet 클래스나 SortedSet 인터페이스를 구현한 ..