본문 바로가기

분류 전체보기

(171)
24.01.24 백오피스3 원투메니 이런거 없이 메뉴와 스토어 연결법 네, @OneToMany 관계를 설정하지 않고 Menu를 생성하려면 createMenu 메서드를 다음과 같이 변경할 수 있습니다. 기존의 Menu 생성자에서 store 프로퍼티를 제거하고, Store 엔티티를 참조하는 storeId를 menu 테이블에 추가해야 합니다. 그리고 MenuServiceImpl.createMenu 메서드에서 Store를 찾아 Menu를 생성할 때 storeId를 설정해줍니다. kotlin override fun createMenu(storeId: Long, menuCreateDto: MenuCreateDto): MenuDto { val newMenu = Menu( name = menuCreateDto.name, price = menuC..
24.01.24 백오피스2 일부만 커밋해서 올리는 법 왼쪽에 있는 커밋을 누르고 올릴 파일들을 클릭한 뒤 밑에 Feat : "MenuEntity 작성" 이런 식으로 올린다. 고치는건 fix다. 올리는건 feat이고. 그리고 커밋 푸시를 누르면 된다. 인증 인가 package com.sparta.dianomi.authority.jwt import io.jsonwebtoken.Claims import io.jsonwebtoken.Jws import io.jsonwebtoken.Jwts import io.jsonwebtoken.security.Keys import org.springframework.stereotype.Component import java.nio.charset.StandardCharsets import java.tim..
24.01.22 백오피스 1 커밋을 할때 인텔리제이의 터미널만이 아니라 왼쪽에서 창을 띄우고 거기에 메시지를 입력한뒤 커빗 버튼을 눌러도 된다는걸 처음 알았다. 그리고 여럿이서 협력할때는 깃허브를 생성하고서 이슈를 눌러서 거기에 각자 생성할것에 대한 체크리스트를 작성하고 @PreAuthorize("hasAuthority('USER')") 이건 유저 권한을 가진 사람만 접근가능 package com.sparta.dianomi.common.model import jakarta.persistence.Column import jakarta.persistence.EntityListeners import jakarta.persistence.MappedSuperclass import org.springframework.data.annotatio..
24.01.19 인가4 val token = jwtPlugin.generateToken(member) 여기에 생긴 빨간줄은 generatetoken, member인데 먼저 jwtPlugin으로 가서 package com.teamsparta.todo.infra.security.jwt import io.jsonwebtoken.Claims import io.jsonwebtoken.Jws import io.jsonwebtoken.Jwts import io.jsonwebtoken.security.Keys import org.springframework.beans.factory.annotation.Value import org.springframework.stereotype.Component import java.nio.charset.S..
24.01.18 인가3 import java.time.Duration 이걸 넣고 fun generateAccessToken(subject: String, role: String): String { return generateToken(subject, role, Duration.ofHours(accessTokenExpirationHour)) } 이러자 해결 package com.teamsparta.todo.domain.dto data class TodoDto( val id: Long?, val title: String, val content: String, val authorName: String ) companion object { fun from(todo: com.teamsparta.todo.domain.model.Todo)..
24.01.17 인가2 비영속(new/transient) 비영속 상태는 객체를 새로 생성한 상태입니다. JPA와 전혀 관계없이 객체만 생성한 상태입니다. 영속(managed) 영속성 컨텍스트에 의해서 관리되어지는 상태입니다. 생성한 객체를 em.persist()를 통해 영속성 컨텍스트에 저장하거나, 혹은 em.find()를 통해 DB에서 엔티티를 조회하면 영속성 컨텍스트에 저장되어 관리되어지므로 이때 영속 상태가 됩니다. 준영속 (detached) 영속성 컨텍스트에 저장되었다가 분리된 상태로 현재는 영속 상태가 아닌 상태입니다. 따라서 영속성 컨텍스트가 제공하는 기능을 사용하지 못합니다. 하지만 준영속은 중요하지 않다. 단방향이 다방향보다 잘 쓰인다. 인증인가 쓰는법 implementation("org.springframewo..
24.01.16 주특기 심화(인가) 이제 새로 aop수업을 듣는데, 어제 시도했던 복원이 드디어 끝났다. 그 와중에 내가 실수로 넘어갔던 것도 복습할수 있었는데, entity에 일일이 constructor 추가 안하는 법 build.gradle.kts에 plugins안에 { kotlin("plugin.jpa") version "1.4.10" kotlin("plugin.allopen") version "1.4.10" kotlin("plugin.noarg") version "1.8.22" } 그 바깥에 kotlin { noArg { annotation("jakarta.persistence.Entity") annotation("jakarta.persistence.MappedSuperclass") annotation("jakarta.persist..
24.01.15 뉴스피드를 마치며... 주말에 살짝 작업을 추가로 했는데, 먼저 @ApiResponse를 집어넣어서 오류코드의 예시들을 보여주려고 했는데, 넣어야 하는 오류코드도 많은데다가 직접 모든 오류코드를 하나씩 넣으려 하다보니 너무 많은 시간이 지났다. 거기다 404 코드가 떠야 하는 상황에 403 코드가 뜬다던가 하는 일이 겹치자 이걸 넣으면 오히려 발표할때에 방해가 될수도 있겠다는 생각이 들어서 결국 피눈물을 흘리며 원상복구를 해야만 했다. 그래서 그 다음엔 @parameter를 추가했다. 이걸 추가하면 fun updateSong(@PathVariable albumId: Long, @PathVariable songId: Long, @RequestBody songUpdateDTO: SongUpdateDTO): ResponseEntit..