시크한 꼴뚜기
수강평 작성수
1
평균평점
5.0
블로그
전체 2#카테고리
- 백엔드
![[인프런 워밍업 클럽 2기 - BE] 2주차 발자국](https://cdn.inflearn.com/public/files/blogs/a736fdec-f4ba-4761-9919-4809a6c5f891/인프런이미지.png?w=260)
2024. 10. 13.
0
[인프런 워밍업 클럽 2기 - BE] 2주차 발자국
강의--회고이전에는 프로젝트를 하면서 테스트 코드를 작성해 본 경험이 많지 않은데, 생각보다 중요한 작업이라는 것을 알게 되었다. 테스트 코드는 독립적으로 항상 동일한 결과를 내야하며, 로직의 수정에 있어서 어떤 오류가 있었는지 없었는지 확인을 할 수 있게 해준다.IntelliJ는 특정 클래스의 테스트 클래스를 쉽게 만들어주는 기능을 제공한다.→ 자신이 테스트 코드를 생성하려고 하는 해당 클래스에 가서 '마우스 오른쪽' → 'Generate'또한 부모-자식의 관계인 엔티티가 존재하는 경우, 부모와 자식 엔티티를 한꺼번에 처리하려고 하면 CascadeType을 설정해야 한다는 것을 깨달았다. 이전에 CascadeType에 대해서 배운 적은 있지만 어떻게 사용해야 하는 지 와닿지 않았는데 오류를 직접 접해보면서 이해하게 되었다.CascadeType.PERSIST: 부모 엔티티가 영속화될 때 자식 엔티티도 함께 영속화됨CascadeType.REMOVE: 부모 엔티티가 삭제될 때 자식 엔티티도 함께 삭제됨CascadeType.MERGE: 부모 엔티티가 병합될 때 자식 엔티티도 함께 병합됨CascadeType.ALL: 모든 영속성 전이를 포함하는 설정(PERSIST, REMOVE, MERGE 등을 모두 포함) 출력을 하기위해서는 println을 사용하는 것보다 logger을 사용하는 것이 좋다고 한다. JAVA 출력하면 무조건 println을 사용해야하는 줄 알았는데 println은 '동시성과 스레드 안전성'에 있어서 더 좋다고 한다. 미니 프로젝트--회고이번주차에는 저번 주에 만든 database ERD를 바탕으로 API 설계를 해보았다. 이전에도 API를 설계해본 적은 있지만 직접적으로 API 명세를 내가 만들어본 적은 없었다. 강사님께서 말씀하신 툴인 swagger을 사용해보고 싶었지만 찾아보니 그것은 api 구현이 되어야 사용할 수 있다고 해서 구현 없이 사용할 수 있는 명세 툴을 찾아보다 'gitBook'을 발견하게 되었고 API 명세를 위한 템플릿이 존재하여 쉽게 만들 수 있었다. ERD를 만들면서 놓쳤던 부분들이나 미처 신경 쓰지 못했던 부분들을 API 명세를 작성하면서 좀 더 구체화하고 수정할 수 있는 기회가 되었다. 다음 주에는 설계한 API를 구현하게 되는데 이를 통해서 다시 한 번 더 수정해야겠다.foreignKey에 대한 설정? 관계?이 아직 완전히 머릿속에 들어오지 않아서 이는 구현을 하면서 다시 한 번 봐야 할 것 같다.reviews를 디자이너와 연결 시켜야 할 지 리뷰어(예약자)랑 연결 시켜야 할 지 아니면 둘 다에 연결 시켜야 좋을 지 아직 정하지 못하였다. 이 역시도 한 번 더 고민해보아야 할 것 같다.이제 시험 기간인데 시험 공부랑 이 스터디의 밸런스를 잘 잡아서 두 마리 토끼를 다 잡아야 겠다. 화이팅!
![[인프런 워밍업 클럽 2기 - BE] 1주차 발자국](https://cdn.inflearn.com/public/files/blogs/448777f0-d36e-478e-bad2-df69c16a2354/인프런이미지.png?w=260)
2024. 10. 06.
0
[인프런 워밍업 클럽 2기 - BE] 1주차 발자국
인프런 워밍업 클럽 2기 백엔트 과정에 참여하게 되었다. Kotlin과 Spring을 이용해서 포트폴리오 사이트를 만들어 보는 프로젝트이며 미니 프로젝트를 함께 수행한다.이전에 코틀린이나 스프링은 사용해 본 적이 없어서 많이 걱정했는데 쉽게 설명되어 있어서 이해하기 쉬웠다.강의입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기 https://www.inflearn.com/course/%EC%9E%85%EB%AC%B8%EC%9E%90-spring-boot-kotlin-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4/dashboard • 어드민 영역 : 관리자 페이지 • 타임리프 - Thymeleaf: 모델에 있는 데이터를 가져와서 동적으로 데이터를 뿌려서 동적인 화면을 만들어 줄 수 있도록 하는 문법--'템플릿 엔진'의 일종. html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있다. 스프링에서 권장한다고 함.'템플릿 엔진' : 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어:: 웹 템플릿 엔진은 View Code(HTML) 과 Data Logic Code(DB) 를 분리 시킴 • 부트스트랩: 부트스트랩은 웹사이트를 쉽게 만들 수 있게 도와주는 CSS, JS 프레임워크부트스트랩 프레임워크는 글자, 인용문, 목록, 표, 입력폼, 버튼, 이미지, 아이콘 등의 자잘한 것뿐만 아니라, 드롭다운 메뉴, 내비게이션 바, 버튼, 탭, 리스트, 페이지 이동 바, 알림 메시지, 썸네일, 진행 바 등의 웹 페이지에서 많이 쓰이는 요소를 거의 전부 내장하고 있다. 따라서 디자인 할 때 소요되는 시간을 줄여줌 • 프레임워크 VS 라이브러리 : 제어의 주도권- 프레임워크 : 틀이 정해져 있고 그 안에서 활용해서 원하는 것 만듬- 라이브러리 : 사용자가 주도권을 가지고 원하는 것을 만들 수 있음 ※ 프레임워크 안에서도 라이브러리 사용가능SPRING• mvc 패턴소프트 아키텍쳐 디자인 패턴. model, view, controller 3가지 요소가 각각 독립된 기능을 담당하고 상호작용하는 형식으로 작동1. model: 데이터를 담음2. view: 데이터를 꺼내옴. 사용자에게 보여지는 화면 담당3. controller: 데이터를 넣음. 요청을 받아 작업을 수행함 • 레이어드 아키텍처처리의 과정을 구조화하는 방법 중의 하나: Controller, Service, Repository 로 레이어를 분리하고 각각 하나의 기능 만을 담당하게 하는 것 1. Controller : 사용자와의 상호작용 담당2. Service : 주요 로직 처리3. Repository : 데이터베이스와 상호작용 등등 이외에도 spring bean, jpa 등의 개념을 강의를 통해서 새롭게 알게 되었다. 더 이상의 자세한 내용은 생략하도록 하겠다...회고이번 미션1, 미션2 와 일주일 동안의 강의 수강을 통해서 어느 정도 spring과 친해진 것 같다. 다음 주에도 열심히 들어서 좀 더 체화해야겠다. node.js 와 생각보다 다른 부분이 많아서 헷갈리고 어려운데 열심히 해야겠다. MVC 패턴에 대해서는 계속 들어보기만 하고 직접 이렇게 나눠서 개발해본 적이 없는데 이 강의에서는 그런 식으로 개발을 진행하는 것 같아서 이에 대해서 더 익힐 수 있을 것 같아 기대가 된다.미니 프로젝트의 경우 미용실 예약 서비스로 잡았는데 아직 테이블 설계 단계이다. 핵심 기능에서 디자이너 찜 기능을 넣을 지 말지 고민 중인데 이는 진행 상황을 봐서 스터디 중에 넣거나 아니면 끝나고 추가적으로 개발할 생각이다. * 이전에는 primary key인 id의 경우 int로 넣는 것보다 string으로 만드는 것이 더 낫다고 해서 그렇게 설계했는데 이번의 경우에는 어떻게 할지 아직 정하지 못했다. 다음주에 rest api 설계하니까 그때 같이 생각해보아야겠다.
백엔드




