김희제
수강평 작성수
-
평균평점
-
블로그
전체 3#카테고리
- 백엔드
#태그
- 백엔드
- 인프런워밍업클럽스터디
- 인프런워밍업클럽
![[인프런 워밍업 클럽_0기 BE] 세번째 발자국 남기기](https://cdn.inflearn.com/public/files/blogs/174cdf98-c59a-4ccf-a36f-0c218ba434cc/스크린샷 2024-02-21 오후 11.35.03.png?w=260)
2024. 03. 10.
0
[인프런 워밍업 클럽_0기 BE] 세번째 발자국 남기기
강의 수강 요약Day10. 객체지향과 JPA 연관관계누가 주인인가? 누가 상대방을 가르키고 있는가? N:1관계에서 N이 연관관계의 주인으로 채택된다. team과 member의 경우에는 member가 팀의 id를 가지고 있게 되므로 연관관계의 주인은 member이다. 연관관계의 주인이 아닌 쪽 team의 entity에 mappedBy="team"를 써줘야한다. 주인이 아니므로 연결된 객체(id)를 가지고 있지 않게되고, 이를 이어주려면 무슨기준으로 이어져있는지 맵핑한다는 느낌으로 이해했다. 솔직히 1:N이면 1이 주인인게 쉬운데...요약하자면 연관관계에서 상대방의 데이터(id)를 들고있는 쪽 하나, 그리고 mappedBy로 이어놓은 곳 하나. 양쪽이 필요하다. JPA 연관관계 어노테이션@OneToOne, @ManyToOne, @OneToMany를 사용해 객체를 연결한다. cascade와 orphanRemoval을 통해 객체의 삭제 및 업데이트 옵션을 지정할 수 있다.@JoinColumn주인이 가지며, nullable, unique와 같이 외래키 설정 등을 가진다.지연로딩fetch옵션을 더 공부해봐야 겠다.Day11. 기본적인 배포를 위한 준비, Day12. AWS와 EC2 배포기존에 배포를 해본 경험으로 쉽게 이해했다.properties설정으로 개발/배포 등 버전을 나누는 법에 대해 배웠으나, 꼭 필요한 배포시 데이터 숨김에 대한 내용이 없어 아쉬웠다. GPT야 도와줘Day13. SpringBoot 설정 및 버전업가장 어려운 설정부분과 프레임워크에 대해 알아보았다.Day14. 마무리 및 꿀팁백엔드의 길은 멀다. 나는 빌드 테스트와 성능 테스트에 대해 더 공부해볼 것 같다. 회고Java의 어노테이션에서 핵심적인 기능을 정의한다는 것에 신기했다. 프론트엔드를 지금까지 공부해본 결과 이를 대응할 것은 hook정도인데, 그 직관성이 어노테이션에 비교하면 많이 부족하다고 생각된다. 다양한 코드와 패러다임을 느낄 수 있는 소중한 스터디이자 강의였다. 미니프로젝트 해결과정프로젝트 링크 : https://github.com/heisje/team-attendance미니 프로젝트 회고강의 들을땐 쉬웠지, 하지만 직접 개발하려니 막막했다.. 연관관계의 주인.. mappedBy.. JoinColumn.. 그래도 형식이 존재하니 연관관계를 맺고 푸는 것은 어찌저찌 할 수 있었다. 하지만 꼭 맺어야할까? 에서 다시 막혔다. 연관관계를 설정하면 참조는 쉬워지지만, 복잡도는 증가해서 시간이 많이 걸린다고 한다.. 백엔드의 길은 험난하군. 모든 방법을 테스트해서 가장 빠른 결과를 내는 방법을 선택하는 것이 좋겠지만, 바쁜 백엔드 개발자는 할 수 없으니 직감적으로 선택을 해야하는 과제가 있을 것이다.아마 옛날 프로그램들이 느린건 이런 복잡한 쿼리들로 인해 데이터 불러오는 것이 느리기 때문이겠지.. 하며 공부의 필요성을 느꼈다.
백엔드
![[인프런 워밍업 클럽_0기 BE] 두번째 발자국 남기기](https://cdn.inflearn.com/public/files/blogs/a69cae01-cd87-420e-8dbf-c8e2bd426b81/332957.png?w=260)
2024. 03. 03.
0
[인프런 워밍업 클럽_0기 BE] 두번째 발자국 남기기
강의 수강 요약6일차 Layered Architecture 만들기Spring Container 클래스 저장소로 들어간 클래스를 Spring Bean 이라고 한다. @Bean과 @Configuration을 사용해 객체를 스프링 빈에 등록할 수 있다.@Component를 사용해 클래스를 SpringBean에 등록할 수 있다.생성자를 통한 주입방식을 사용하는 것이 가장 권장된다. 7일차 JPAJPA가 인터페이스면 Hibernate가 구현체이다.@Transactional영속성 컨텍스트와 기능: 트렌젝션이 시작될 때 영속성 컨텍스트가 생겨나고, 데이터베이스 객체를 보다 잘 사용할 수 있게 해준다. 기능 : 변경감지, 쓰기지연, 1차캐싱, 지연로딩8일차 ~연관관계 구현관계의 주인은 1:N중 N이다.다수가 One의 id를 가지고 있으므로, Many가 주인이다. 간단한 회고엔티티를 작성하는 것이 너무 헷갈린다. 7일차까지는 단순히 따라가기만 하면 됐었는데, 미니프로젝트 과제가 시작되고, 나름 코드를 잘 짜려고 노력하다보니 toEntity와 같은 다양한 키워드들이 눈에 밟혀서 오래걸리는 것 같다..적용은 안했지만.. 미니 프로젝트를 중심으로 남은 강의를 잘 수강해보겠습니다! 미션 해결 과정여섯번째 과제: Layered Architecture 만들기링크 : https://github.com/heisje/Inflearn-warmup-club-study-0/blob/main/assignment/LayeredArchitecture.md부트캠프에서 프로젝트를 만들때 협업을 위해 관심사를 분리하던 것에 이름이 있단 것을 알고 놀랐다. JPA와 JDBC를 인터페이스로 통합하여 스프링빈 자동주입을 사용해서 구성해보았다.일곱번째 과제: 과일가게API작성하기쿼리를 JPA로 변경하는 것이 쉽지 않았다. @Query어노테이션을 사용하면, 내 기준으로 복잡해 보이는 메소드명을 줄이고 이해하기 좋은 쿼리로 작성할 수 있어 자주 애용할 것같다. 링크: https://github.com/heisje/Inflearn-warmup-club-study-0/blob/main/assignment/jpaFruitAPIs.md
백엔드
・
백엔드
・
인프런워밍업클럽스터디
![[인프런 워밍업 클럽_0기 BE] 첫번째 발자국 남기기](https://cdn.inflearn.com/public/files/blogs/983ea0c7-17de-489e-9f76-20e434738094/이거.png?w=260)
2024. 02. 25.
0
[인프런 워밍업 클럽_0기 BE] 첫번째 발자국 남기기
인프런 워밍업 클럽 - 스터디 0기 BE백엔드 역량 강화를 위해 인프런에서 진행하는 스터디에 참가했습니다. 수강한 강의: 최태현님의 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! 1주차 수강 후기이전에 혼자 프로젝트를 만들 때는 GPT에 의존해서 복사/붙여넣기만 했었다. 강의를 수강하고 과제를 하니 내가 알던 것이 아니고 GPT가 코딩을 했었다는 것을 알게 되었다. 어노테이션을 사용하기 전 기초부터 알려줘서 어노테이션의 편리함과 스프링의 아키텍쳐에 대해 기초부터 꽉 차는 느낌을 받을 수 있었다. 또한 너무~! 기초가 아니라 프로젝트에 바로 적용할 수 있다는 점이 마음에 들었다. 배운 내용어노테이션을 사용하는 이점과 간단한 API작성 방법, 그리고 스프링에서 Controller-Service-Repository-DTO로 구분하는 것이 레이어드 아키텍처라는 것에 대해 알게 되었다.람다랑 스트림을 활용한 선언적 프로그래밍으로 클린코드에 더욱 가까워지는 느낌이였다. 제출 과제첫 번째 과제 [어노테이션을 사용하는 이유](https://velog.io/@heisje/어노테이션을-사용하는-이유-나만의-어노테이션만들기-인프런-워밍업-클럽-스터디-BE-1주차)두 번째 과제 [GET POST API 작성하기](https://velog.io/@heisje/2일차-과제-인프런-워밍업-클럽-스터디-BE-1주차)세 번째 과제 [자바의 람다식은 왜 등장했을까](https://velog.io/@heisje/3일차-과제-인프런-워밍업-클럽-스터디-BE-1주차)네 번째 과제 [과일가게 API 작성하기](https://velog.io/@heisje/3일차-과제-인프런-워밍업-클럽-스터디-BE-1주차-jogaz5em)다섯 번째 과제 [클린코드 리펙토링하기](https://velog.io/@heisje/5번째-과제-인프런-워밍업-클럽-스터디-BE-1주차)여섯 번째 과제 [스프링컨테이너 목적에 따라 분리하기](https://github.com/heisje/Inflearn-warmup-club-study-0/blob/main/assignment/LayeredArchitecture.md)공부 정리한 깃허브https://github.com/heisje/Inflearn-warmup-club-study-0
백엔드
・
인프런워밍업클럽




