> 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.29.md).

# 2022.08.29

일일 회고 19일차

## 할일 및 한일

* [x] Java로 로그인 프로그램 구현 완료하기(95%)
* [x] nest.js 강의 다시 듣고 복습 및 정리하기

## 경험 및 배움

### Java로 로그인 프로그램 구현 완료하기(95%)

오늘은 개강을 하고, ot주여서 일찍 끝난 후에 연구실에 와서 로그인 프로그램 구현을 거의 완료 및 마무리 하였다.

일단, 로그인, 회원 가입, 사용자 조회, 탈퇴 등의 메인 기능은 모두 구현 완료하였고 자잘한 조건도 여러개 완료하였다.

* **사용자 조회와 탈퇴는 로그인이 되어있을 시에만 가능하게 하기**
* **회원가입시에 user배열이 꽉차있다면 회원가입이 불가능하다는 메시지를 호출하기**

이런 조건들을 구현하다 보니 역시 프로젝트를 많이 해보지 못한 경험이 드러났다. 코드를 많이 내 생각대로 짜보지 않았기 때문에 이런 생소한 조건에서는 생각이 잘 나지 않아서 어려웠다.

우선 사용자 조회와 탈퇴가 로그인이 되어있을 시에만 가능하게 하는것은 **`private static boolean loginState`** 라는 정 변수를 만들어서, `logIn()` 함수에 넣어서 **로그인이  되면  기본값인 false를  true로 변경하여  로그인 상태가 되게 만들고,**  사용자  조회와  탈퇴 시에는  if문을  제일 바깥쪽에  추가하고  `loginState`  를  넣어  로그인이 되어 있을 시에만 가능하게 만들었다.

그리고 회원가입시에 user 배열이 꽉차있다면 회원가입이 불가능하다는 메시지를 호출해야 하는데, else나 else-if 등을 해봐도 결과가 원하는 대로 나오지 않아 좀더 찾아보고 물어보니 **break문이 아닌 return문을 이용하여** **회원가입이 완료되면 반복문이 아닌 `createAccount()` 함수 자체를 빠져나오고**, 배열이 꽉차서 회원가입이 불가능하면 불가능하다는 메시지를 호출하도록 설계했다.

마지막 구현 조건인 아이디가 중복되면 회원가입이 불가능하게 만드는 조건은 내일 구현해볼 예정이다.

자세한 코드는 github에 올려져있다.

{% embed url="<https://github.com/Jinwon-Dev/java-toy-project/tree/main/src/login_program>" %}
로그인 프로그램 코드
{% endembed %}

### nest.js 강의 듣고 복습 및 정리하기

nest.js 역시 강의를 보면서 게시판 구성을 하며 게시물을 생성하고, DTO를 적용하고 ID로 특정 게시물을 가져오고 지우는 메소드, 그리고 특정 게시물의 상태를 업데이트하는 메소드를 추가하였다.

자세한 내용은 notion에 정리되어있다.

{% embed url="<https://jinwonyoon.notion.site/CRUD-3-212e615f87d34df9a8c0be1b728485bd>" %}
nest.js notion 정
{% endembed %}

## 개선 및 목표

* 내일 안에는 nest.js 이번주 진도와 Java로 로그인 프로그램 구현하기를 마무리하자.
