> For the complete documentation index, see [llms.txt](https://jinwon-yoon.gitbook.io/jinonys-blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jinwon-yoon.gitbook.io/jinonys-blog/daily-log/2022.08.26.md).

# 2022.08.26

## 할일 및 한일

* [ ] nest.js 강의 보며 복습하기
* [x] Java 로그인 프로그램 과제 구조 짜보기 .

## 경험 및 배움

오늘은 오전에 연구실 청소 및 자리 배치를 다시 하였다.

그리고 다음주 까지 과제인 **Java로 로그인 프로그램을 구현**하는 것에 대해 구조를 짜보았다. 몇 가지 구현에 대한 조건이 있다.

**로그인 프로그램**

* 사용 기술

  Class, 배열
* 기본 설정
  * 사용 Class
    * User(사용자)

      필드

      로그인 아이디, 패스워드, 닉네임

      필드는 모두 접근 제한자 private을 사용한다.

      메서드 : 각 필드에 대한 Getter, Setter
    * LoginApplication(main 메서드 선언 지점)
  * User 배열 크기 : 10
* 요구사항

  * 회원가입
    * 사용자는 회원가입을 할 수 있다.
    * 회원가입은 생성자를 통해 하게 되며 로그인 아이디, 패스워드, 닉네임을 파라미터로 받는다.
      * 회원가입을 하게 되면 프로그램의 User 배열에 담기게 된다.
    * 만약 배열이 가득 차 있다면 담지 않고 콘솔에 회원가입을 할 수 없다는 메시지를 보여준다.
    * 중복은 허용하지 않는다.
  * 로그인
    * 사용자는 로그인을 할 수 있다.
    * 로그인은 사용자의 로그인 아이디와 패스워드를 입력받아 수행된다.
    * 사용자가 로그인을 하게 된다면 자신의 로그인 아이디와 닉네임이 메시지로 출력된다.
    * 로그인 아이디와 패스워드가 일치하지 않는다면 로그인을 실패하였다는 메시지를 출력한다.
  * 사용자 조회
    * 사용자 조회 기능은 현재 회원가입 회원들의 목록을 출력하게 된다.
    * 로그인 상태에서만 가능하다.
    * 회원들의 목록을 출력할 때 for 문은 향상된 for 문을 사용한다.
    * 회원들의 목록은 각 회원의 닉네임이 출력되게 된다.(자신도 포함)
    * 모든 목록을 출력할 때 null은 출력하지 않는다.
  * 탈퇴

    * 회원은 탈퇴를 할 수 있다.
    * 로그인 상태에서만 가능하다.
    * 탈퇴 기능은 회원의 로그인 아이디와 패스워드를 입력받은 뒤 해당 회원의 정보를 배열에서 null로 만든다.
    * 만약 일치하는 로그인 아이디가 없거나 패스워드가 일치하지 않는다면 탈퇴에 실패하였다는 메시지를 콘솔에 출력하게 된다.

    <figure><img src="/files/5HEW4QzM6xjkIOXuP9IF" alt=""><figcaption><p>로그인 프로그램 구조</p></figcaption></figure>

  ## 개선 및 목표 &#x20;

  * 주말안에는 로그인 프로그램 구현을 끝내자.
  * 주말이 지나면 개강이니 준비 철저히 하자.
