학습 목표 ArrayList 클래스에 대해 설명할 수 있다. Generics에 대해 설명할 수 있다. 멀티 쓰레딩(multi-threading)에 대해 설명할 수 있다. 임계영여(critical section)을 이용한 동기화(synchronization)에 대해 설명할 수 있다. 쓰레드 사이의 통신을 이용한 동기화에 대해 설명할 수 있다. 학습 내용 ArrayList 클래스 Collections 클래스는 오브젝트 데이트의 관리를 지원하는 클래스이며, ArrayList 클래스는 그 중 하나를 말함 오브젝트들을 연결구조로 저장 가능, 배열과 달리 크기가 사용에 따라 자동적으로 조절됨 오브젝트 생성시 안에 저장한 데이터의 자료형을 지정함 버젼 6 이후에서는 을 생략해도 됨 자료 구조에서 다루는 linked ..
분류 전체보기
학습 목표 패키지(package)에 대해 설명할 수 있다. 접근 제한자의 사용에 대해 설명할 수 있다. 중첩 클래스(Nested Class)에 대해 설명할 수 있다. 랩퍼 클래스(Wrapper Class)의 사용에 대해 설명할 수 있다. 문자열 처리 메소드의 사용에 대해 설명할 수 있다. Scanner 클래스의 사용에 대해 설명할 수 있다. 시간에 관련된 메소드의 사용에 대해 설명할 수 있다. 수학에 관련된 메소드의 사용에 대해 설명할 수 있다. 학습 내용 패키지 패키지란? 클래스(class) 인터페이스(interface) 어노테이션(Annotation)을 한데 모아놓은것 하나의 패키지는 물리적으로는 하나의 폴더임 자바에는 많은 편리한 패키지가 준비되어 있음 사용자가 필요에 따라 패키지를 만들 수도 있음..
회원 리포지토리와 도메인을 활용해 실제 비지니스 로직을 작성해볼것이다. 우선 자바의 hello.hellospring에 하위 패키지를 생성한다. 해당 서비스 패키지에 MemberService 클래스를 생성해준다. 제일 먼저 작성할 코드는 인터페이스 MemberRepository의 인자를 가지고 있고 작동 가능한 MemoryMemberRepository의 메소드를 포함한 객체를 하나 생성해준다. 그 다음 해당 객체를 바탕으로 회원가입 서비스 코드를 작생해보자. 여기서 validateDupicateMember는 member의 값이 이미 데이터 베이스에 저장되어 있는지 확인하는 메서드이다. 다음으로는 전체 멤버를 조회하고 리스트 형식으로 반환하는 서비스 코드를 작성해보자. 해당 코드는 기존 MemoryMembe..
일일히 테스트 코드를 작성하지 않고 클래스를 선택한 후 ctrl + shift + T를 눌러주면 바로 테스트 코드가 작성된다. 테스트를 생성할 메소드를 선택해주고 ok를 누르면 테스트 코드가 생성된다. 우선 회원가입 테스트 코드를 작성해보자 여기서 주석처리 된 given when then은 각 코드에 어떤 값이 들어오고 어떤 동작을 하고 그 결과를 출력하는 과정을 코드 가동성을 위해 나눠서 표시했음을 의미한다. 우선 회원가입 테스트 코드를 작성해보자 member 객체를 생성해준 후 setName 메서드를 사용해 이름값을 spring으로 저장해줬다. 이어서 memberService의 join 메서드를 사용해서 Long 타입의 saveId에 저장해줬고 결과적으로 member의 이름값을 호출해 비교했을때 Tr..
학습 목표 Java에서의 오류인 예외(Exception) 처리에 대해 설명할 수 있다.입출력 처리를 위한 스트림(Stream)에 대해 설명할 수 있다.텍스트 파일의 완성형(KS)코드와 Unicode에 대해 설명할 수 있다.텍스트 파일의 읽기, 쓰기키보드로부터 입력을 받는 방법에 대해 설명할 수 있다.학습 내용 예외(Exception) 처리 방법 예외와 예외처리 예외프로그램을 실행했을 때 발생하는 에러예외처리에러 예외에 대응하는것 자바는 예외가 발생하면 자동으로 전용 클래스의 오브젝트가 생성됨예외 클래스에는 Exception 클래스와 그 서브클래스가 있음예외가 발생할 것 같은 처리를 수행할 경우에 try문 catch문 finally문을 사용함 예외처리 예외가 일어날 것 같은 메소드는 throw 를 사용하여..
테스트 케이스란 개발한 기능을 실행해서 테스트 할 때 main 메서드를 통해서 실행하면 시간이 너무 오래걸리고 반복 실행하기 어렵다. 이를 해결하기 위해 JUnit이라는 프레임 워크로 테스트를 실행한다. 우선 메서드 당 테스트가 끝나면 store을 초기화 시켜주는 메서드를 생성해주었다. 이 메서드를 AfterEach로 테스트 코드에 적용시킨 모습 repository 클래스를 생성하고 해당 클래스의 save 메서드를 사용해 testcode를 작성했다. 마찬가지로 findByName 메서드의 testcode다 findAll 메서드의 testcode
비즈니스 요구사항 정리 회원 도메인과 리포지토리 만들기 회원 리포지토리 테스트 케이스 작성 회원 서비스 개발 회원 서비스 테스트 비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장서가 선정되지 않음(가상의 시나리오 일반적인 웹 애플리케이션 계층구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체. 예) 회원,주문,쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 아직 데이터 저장소가 선정되지 않어서 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB noSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을..
도메인 이 코드는 주로 회원 정보를 담는 객체를 생성하고, 이 객체에 대한 식별자와 이름을 설정하거나 가져올 수 있도록 한다. 예를 들어, 회원 가입 시에는 회원의 이름을 설정하고, 데이터베이스에서 회원을 조회할 때는 회원의 식별자를 사용할 수 있다. 해당 클래스는 스키마와 비슷한 역할을 하는 것 같다. 인터페이스 다음으로 Member Repository 인터페이스를 만들어보자 해당 인터페이스는 CRUD 작업을 수행하기 위한 메소드를 선언하는 인터페이스로 해당 코드에서 실질적인 작업이 이루어지는게 아닌 해당 인터페이스를 구현한 클래스에서 작성된다. (CRUD 구현을 위한 쿠키틀) 리포지토리 해당 코드는 MemberRepository 인터페이스를 구현하여 CRUD(Create, Read, Update, D..
API란? api는 json이라는 데이터 포멧으로 클라이언트에게 데이터를 전달하는 방식 요즘 많이 쓰인다 helloString 메서드를 생성해준다. 여기서 주의해야 할 점은 GetMapping 외에 ResponseBody 를 추가해줘야 한다 ResponseBody는 http의 body 부분에 해당 데이터를 직접 넣어준다는 뜻이다 Http 헤더와 바디에 대한 부가 설명 HTTP(하이퍼텍스트 전송 프로토콜)는 웹 서버와 클라이언트 간에 통신하기 위해 사용되는 프로토콜입니다. HTTP 요청과 응답은 일반적으로 헤더와 바디 두 부분으로 나뉘어집니다. 헤더(Header): HTTP 헤더는 요청이나 응답에 대한 메타데이터 정보를 포함합니다. 일반적으로 헤더는 다음과 같은 정보를 제공합니다: 요청 헤더: 클라이언트가..