반응형 [서버]104 Ubuntu에 Docker 설치하기 sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg sudo mkdir -m 0755 -p /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$V.. 2023. 4. 7. [SpringBoot Kotlin] data class는 언제 사용하는 것이 좋을까? data class는 JPA 기반 Entity = Domain 계층에서 사용하기엔 부적절하다. 쿼리적으로 순환 참조가 발생할 수 있기 때문이다. Entity는 기본 class로 정의하고, 또 통신 과정에서는 당연히 Entity로 하지 않고 Transfer의 목적인 DTO 클래스를 새로 정의해야 추가적으로 발생할 여지가 있는 참조 문제도 막을 수 있다. 그리고 이 DTO 클래스는 주로 data 클래스로 사용한다. 2023. 3. 30. 코틀린 확장함수 이용해서 JpaRepository 사용하기 코틀린으로 작성한 이러한 함수가 있다. @Transactional fun updateUserName(request: UserUpdateRequest) { val user = userRepository.findById(request.id).orElseThrow(::IllegalArgumentException) user.updateName(request.name) } 우리가 JpaRepository에서 @PrimaryKey 이외에 추가로 정의한 findByName() 같은 함수가 있다면 fun findByName(name: String): User? 이렇게 반환형으로 Null Safety를 이용해 줄 수 있지만, findById처럼 JpaRepository에서 기본제공해주는 함수는 아직 JAVA 이므로 Nu.. 2023. 3. 30. SpringBoot의 주입 vs Android의 주입 안드로이드에서 Hilt 처럼 생성자 주입에 어노테이션을 사용하지 않아도, 생성자에 해주면 자동으로 빈이 주입된다. @Service class UserService( // 알아서 Bean이 잘 주입된다. Hilt 같은거 안써도 private val userRepository: UserRepository ) { @Transactional fun getUsers(): List { return userRepository.findAll() .map { user -> UserResponse(user) } // == .map(::UserResponse) } } 매우 간단하다고 볼 수 있다..! 추가로 getUsers() 에서 볼 수 있듯이, map 방법은 위와 같다. .map { user -> UserResponse.. 2023. 3. 29. 이전 1 ··· 4 5 6 7 8 9 10 ··· 26 다음 반응형