0810 개발일지

Yesol Lee·2022년 8월 10일
0

개발일지 - 2022

목록 보기
113/187
post-thumbnail

오늘 한 일

뉴스레터

  • 직원 인터뷰 이미지에 들어갈 텍스트 작성

사이드 프로젝트

1. 회원 도메인 생성

  • egov 프로젝트의 vo와 같이 데이터를 담을 객체 클래스를 domain이라는 폴더 안에 생성해주었다.
  • Long id, String name, 추가로 String pw 변수를 추가했다.
  • 각 변수에 대해 getter, setter를 생성했다.

2. 회원 리포지토리 생성

  • 데이터를 저장할 DB가 정해지지 않았다는 가정이기에 repository를 interface로 구현하고 회원 리포지토리를 직접 구현할 구현체로 MemoryMemberRepository 클래스를 생성했다.
  • 해당 클래스 안에 staticHashMap 변수 store를 생성하고 데이터를 저장한다.
  • 메소드 4개 : save(회원생성), findById(아이디로 검색), findByName(이름으로 검색), findAll(전체회원조회)

java optional 객체

  • java 객체를 전달할 때 조회 결과가 없어 null이 반환되는 경우를 대비해 optional로 감싸서 반환할 수 있다.
  • optional의 다양한 메소드를 사용할 수 있다.
// MemoryMemberRepository.java
@Override
public Optional<Member> findById(Long id) {
	
	// id 조회결과 없어서 null 반환되는 경우를 대비해 optional로 감싸서 반환
	return Optional.ofNullable(store.get(id));
}

java stream

  • map 등과 같이 iterable한 collection 객체의 경우 그 안에 들어있는 요소들을 순차적으로 돌면서 같은 로직을 적용해야 될 때가 있다.
  • 예전에 iterator나 forEach를 사용해봤던 기억이 나는데 (java가 아니었던거같음..) java도 비슷한 방법을 쓰다가 8버전부터 stream 객체를 제공하고 있다.
    자바 스트림 사용법 및 예제

java lambda

  • python과 다르게 자바는 ->를 사용하나보다. 그냥 강의에서 쓰길래 따라 작성했었는데 다행히 작동한다.
// java filter : 조건에 맞는 객체 찾으면 반환, 없으면 optional로 감싸서 반환됨
return store.values().stream()
		.filter(member -> member.getName().equals(name))
		.findAny();

3. 리포지토리 테스트케이스 작성

이클립스에서 JUnit 사용하기

  • 강의에선 intelliJ를 사용했는데 나는 이클립스에서 하고 있어서 가끔 IDE 사용법이 다르다. 이클립스에서 JUnit test case를 생성하고 사용하는 방법을 별도로 검색했다.
    자바 JUnit 사용 방법 & 단위 테스트 방법

  • 지금까지 /test 패키지 안에 파일을 생성하거나 테스트코드 작성, 실행을 해 본적이 없었는데 이번에 하게되어 흥미로웠다.

  • test 파일은 보통 기존 파일명+test로 짓는다.

  • @Test : 메소드에 test 어노테이션 추가 시 해당 메소드를 테스트한다. 테스트 순서는 메소드 순서 등과 상관이 없어 보장 불가능 -> 각 테스트 독립적으로 구성

  • @AfterEach : 모든 테스트 메소드 실행 후 실행되는 함수의 경우 (ex. static 값 초기화)

  • @BeforeEach : 모든 테스트 메소드 실행 전 실행되는 함수의 경우 (ex. 의존성 주입)

4. 회원 서비스 및 서비스 테스트케이스 작성

  • join(), findMembers() 등 좀더 회원 입장을 반영하는 메소드 제목 사용
  • 하나의 기능으로 분리 가능하면 메소드화

기타: github - eclipse 토큰 연결

깃허브 로그인 실패 해결-personal access token 이클립스에 추가

  • 집에서 복사해 온 기존 토큰을 입력해도 연결 불가
  • 결국 새로운 토큰을 발급받았는데, 개인 노트북에서 이클립스로 github에 접속할 땐 어떤 토큰을 써야할 지 모르겠다. 둘 중 되는 것을 사용할 예정이다.
  • 일단 회사 컴퓨터 이클립스와 github을 연결해서 push, pull 되는 것까지 확인했다.
profile
문서화를 좋아하는 개발자

0개의 댓글