본문 바로가기

전체 글136

build.gradle, application.yml 의존성 라이브러리 추가, 애플리케이션 설정 프로젝트 진행에 있어 필요한 의존성 라이브러리들을 추가하고 애플리케이션에 대한 설정을 추가한다. 의존성 라이브러리 관리는 gradle을 사용하였고, 어플리케이션 설정은 yml을 사용하였다. 1. 의존성 라이브러리 [dependency] dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-security' implementation group: 'com.auth0', name: 'java-jwt', version: '3.18.1' implementation 'org.. 2022. 4. 13.
PongGame PongGame 개별 계정을 소유할 수 있고 타인과 PongGame및 소통을 할 수 있는 웹사이트 웹사이트는 아래의 주요 기능과 정책을 갖고있으며, 개발 중 특정 기능이나 정책은 변경될 수 있다. 1. 주요 기능 ■ Account □ 회원가입 ● 웹사이트를 이용하는 사용자는 회원 가입을 통해 계정을 생성할 수 있다. ● 회원 가입시 ID는 개인 이메일을 사용하며 이메일 인증이 필요하다. ● 신규 회원가입 대신 Oauth를 통해 계정을 생성할 수 있다. □ 회원 정보 수정 ● 개인 정보를 수정할 수 있다. ■ Relation □ 친구 ● 회원 끼리 친구 신청, 승낙, 거절을 통해 친구 관계를 형성할 수 있다. ● 친구 관계에 있는 회원의 목록을 확인할 수 있으며 추가적인 커뮤니케이션 기능(채팅)을 사용할 .. 2022. 4. 10.
스트림(Stream) 스트림(Steam) 보통 많은 수의 데이터를 다룰 때는 컬렉션이나 배열 그리고 for문과 Iterator를 이용해서 코드를 작성한다. 그러나 이러한 방식으로 작성된 코드는 너무 길고 알아보기 어려우며 재사용성도 떨어진다. 또 다른 문제는 데이터 소스마다 다른 방식으로 다뤄야 한다는 것이다. Collection이나 Iterator과 같은 인터페이스를 이용해서 컬렉션을 다루는 방식을 표준화하기는 했지만, 각 컬렉션 클래스에는 같은 기능의 메서드들이 중복해서 정의되어 있다. 이런 문제점들을 해결하기 위해서 나온 것이 '스트림(Stream)' 이다. 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 스트림을 사용하면, 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도.. 2021. 12. 8.
Optional Optional Optional은 지네릭 클래스로 'T타입의 객체'를 감싸는 래퍼 클래스이다. 때문에 Optional 타입의 객체에는 모든 타입의 참조 변수를 담을 수 있다. 여기서 중요한것은 변수가 Optinal이라는 객체에 담아서 반환된다는 것이다. 이처럼 객체에 담아서 반환을 하면, 반환된 결과가 null인지 매번 if문으로 체크하는 대신 Optional에 정의된 메서드를 통해서 간단히 처리할 수 있다. ■ Optional 객체 생성 Optional 객체를 생성할 때는 of() 또는 ofNullable()을 사용한다. [Optional 객체 생성 예] Optional optVal = Optional.of("abc"); Optional optVal = Optional.of(new String("abc.. 2021. 12. 3.