본문 바로가기

Study32

[Kotlin] Sealed Class | 코틀린 실드 클래스 Sealed ClassSealed 클래스는 클래스 계층 구조를 정의하는 특별한 종류의 클래스다.sealed 클래스는 상속의 개념이 아니라 클래스의 종류를 제한하는 용도로 사용된다.sealed 클래스는 해당 클래스의 하위 클래스를 한정하는 데 사용되며, 이 하위 클래스들은 sealed 클래스의 내부나 동일한 파일 내에서 정의되어야 한다. 이렇게 하면 sealed 클래스의 하위 클래스가 완전하고 제한된 집합을 형성하게 되어, 해당 클래스 계층 구조를 제한하고 더욱 안정적으로 만든다. 제한된 하위 클래스: Sealed class는 제한된 수의 하위 클래스를 가질 수 있다.패턴 매칭: Sealed class는 패턴 매칭과 함께 사용되어 특정 유형의 인스턴스를 처리하는 코드를 보다 간결하게 작성할 수 있다. wh.. 2024. 5. 1.
[TS] Enum | TypeScript 타입 스크립트 열거형 타입 이넘 여러가지 값에 각 이름을 부여하고 열거해서 사용하는 타입이다. 열거형 타입(Enum)은 자바스크립트에는 존재하지 않는 타입이다. enum Role { ADMAIN = 0, USER = 1, GUEST = 2, } const user = { name: "MinJ", role: Role.ADMIN } console.log(user) // { name: "MinJ", role: 0 } 유저의 권한과 같은 여러 멤버를 갖는 값을 공통화하여 표기할 때 enum을 사용하면 안전하고 직관적으로 관리할 수 있다. enum Role { ADMAIN, // 0 자동 할당 USER, // 1 자동 할당 GUEST, // 2 자동 할당 } enum Role { ADMAIN = 10, USER, // 11 자동 할당 GUEST.. 2023. 6. 26.
@Query로 update문 작성하기 | Spring Spring boot JPA 쿼리 어노테이션 Group 테이블과 User 테이블은 1:N 관계를 가지고 있습니다. 이미 생성되어있는 User 엔티티에 Group 엔티티의 정보를 업데이트하는 과정을 설명하고자 합니다. public interface UserRepository extends CrudRepository { @Modifying @Transactional @Query(value = "UPDATE user_tb u set u.group_id = :groupId where u.user_id = :userId", nativeQuery = true) void updateGroupId(long groupId, long userId); } @Modifying - SELECT가 아님을 명시하는 어노테이션입니다. - UPDATE, DELETE, INSER.. 2022. 4. 27.
[JAVA] 2진수 → 10진수 / 10진수 → 2진수 변환 코드 | 이진수 십진수 2진수 십진수 2진수 → 10진수 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int sum = 0; int i = 1; while (a > 0) { sum += i * (a % 10); // 1의 자리 수와 i 곱하여 더함 i = i * 2; // 2진수이기에 i에 2를 곱해줌 a /= 10; // 1의 자리 수 자르기 } System.out.println(sum); } 10진수 → 2진수 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.n.. 2022. 3. 7.
[Node] Node.js Express-generator / Express 설치로 프로젝트 기본 세팅 Express HTTP 요청에 대해 라우팅과 미들웨어 기능을 제공하는 웹 프레임 워크 Express-generator MVC 구조를 가진 프로젝트를 생성해주는 도구 https://www.npmjs.com/package/express-generator ✔ Visual Studio Code ✔ 목표 Express-generator로 프로젝트 기본 세팅하기 express 설치는 vs code의 터미널을 사용하여 설치했습니다. 파일 내부에서 cmd로 설치하는 것과 동일합니다. 1. 터미널 열기 ctrl + ` 단축키 or 상단 메뉴 터미널 > 새 터미널을 선택하여 터미널을 열어준다. 2. express-generator > npm i express-generator + express-generator@4.16... 2022. 2. 26.
User 엔티티를 외래키로 가진 Post 엔티티 조회하기 | Spring Spring boot JPA Study 이번 글은 외래키를 가진 Post 엔티티의 전체 조회와 상세 조회를 구현한 글입니다. 전체 조회 API는 모든 회원의 글 전체를 조회할 수 있고, 특정 회원의 글 전체를 조회할 수 있습니다. 1. 게시글 목록 기능 구현 issues #41 Pull request #53 - 해당 링크로 코드를 확인할 수 있습니다 1. Response DTO 반환할 DTO를 생성한다. @Getter public class PostResponseDto { private String title; private String content; private String userName; private LocalDateTime createdAt; } 2. PostController @GetMapping public List getPo.. 2022. 2. 16.
[IntelliJ] 인텔리제이에서 디버그 사용하기 디버그 사용 방법 디버그를 돌립니다. 실행을 일시 정지할 부분에 브레이크 포인트(빨간 원)를 찍습니다.디버그를 먼저 실행하든 브레이크 포인트를 먼저 찍든 상관없습니다. 브레이크 포인트는 여러개 찍을 수 있습니다. 메소드 실행을 위해 해당 도메인에 접속한다. 디버거에서 해당 위치의 정보를 알 수 있다. F8을 눌러 다음 차례로 넘어갈 수 있다. (Step Over) 다음 브레이크 포인터가 아닌 다음 실행 부분으로 넘어가진다. F9를 누를 시 다음 브레이크 포인터로 넘어갈 수 있다. (Step Info) 디버그의 장점 파라미터 또는 쿼리가 잘 들어왔는지 확인할 수 있다. 쿼리문 조회 시 조회한 레코드를 확인할 수 있다. sout이나 log를 찍지 않아도 알고 싶은 변수 등의 값을 확인할 수 있다. 어느 부분.. 2022. 2. 16.
User 엔티티를 외래키로 가진 Post 엔티티 추가하기(INSERT) | Spring Spring boot JPA Study ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 2. 게시글 추가 기능 Issues #40 Pull request #51 - 풀 리퀘스트 링크를 통해 해당 코드를 확인할 수 있습니다. 1. PostController @PostMapping("/{userpk}") public void createPost(@PathVariable(name = "userpk") @Valid long userPk, @RequestBody @Valid CreatePostRequestDto createPostRequestDto) { boardMinjService.createPost(userPk, createPostRequestDto); } @PostMapping("/{userpk}") user 엔티티가 p.. 2022. 2. 16.
JPA Auditing 사용하여 엔티티 설계하기 | Spring Spring boot JPA Study ✔ Java 11 ✔ Gradle 7 ✔ Spring boot 2.6.3 ✔ 목표 JPA Auditing 사용하여 생성 날짜, 수정 날짜의 컬럼 자동화 1. 엔티티 설계 https://github.com/ywoo-srin-minj/spring_study/issues/39 디렉토리 구조 ├─entity │ │ BaseEntity.java │ │ │ ├─name │ │ ├─boardName │ │ │ │ BoardName.java │ │ │ │ │ │ │ └─repository │ │ │ BoardNameRepository.java │ │ │ │ │ └─userName │ │ │ UserName.java │ │ │ │ │ └─repository │ │ UserNameRepository.java │ │ Use.. 2022. 2. 15.