블로그
전체 22025. 03. 16.
0
[인프런 워밍업 클럽_3기 백엔드 프로젝트]2번째 발자국
지금부터는 실습 위주라 발자국을 자세하게 남기긴 힘들 것 같다.데이터 베이스 초기화를 하여 데이터를 삽입을 하는 작업을 한다.코틀린을 써본 적이 없어서 아직 너무 미숙하다. 그리고 뭐가 뭔진 잘 모르겠지만지금 데이터를 넣을 때mutableListof 라는 메서드를 이용하여 삽입하고 있다.그리고 데이터를 삽입할 때컬럼이 여러개일 경우그 컬럼의 값이 안 들어가게 되면 오류가 난다.값이 여러개 일 경우 mutableListof 를 사용하여 리스트화 해서saveall 이라는 키워드를 사용해 값을 집어 넣는다.saveall은 영속성으로 값을 집어 넣는 것이다.실습을 하던 도중 Error creating bean with name '*': Invocation of init method failed이 에러가 떠 인터넷에 찾아보다가 강의를 다시 들으며 오타를 낸 부분이 있나 찾아봤더니skill부분에 project로 의존주입을 해서 에러가 난 거였다.테스트 코드는 매우 중요하다.인텔리제이는 테스트코드를 작성하기 매우 용이하다테스트 패키지안에코틀린 파일을 만든다그리고 어노테이션을 @DataJpaTest 이것을 부착해준다.@DataJpaTest은 필요한 기능들만 초기화해준다롤백을 안해주면 다음 테스트에 영향을 미칠 수 있다트랜잭션 어노테이션을 달아준다@TestInstance(TestInstance.Lifecycle.PER_CLASS)한번 만들어주고 클래스 단위로 돌아가게 해준다.Assertions.assertThat(beforeInitialize).hasSize(0)테스트 통과 실패여부를 알려주는 코드테스트 코드 실행 후 실패 에러defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract long확인해보니 httpinterfaceRepostory의 메서드의 이름에 오타가 나있었던 것.
2025. 03. 01.
0
[인프런 워밍업 클럽_3기 백엔드 프로젝트]1번째 발자국
웹은 클라이언트와 서버로 구성되어있다.클라이언트 : 요청하는 주체서버: 응답하는 주체 (CRUD)데이터베이스 : 데이터의 집합데이터베이스관리시스템:DBMS도메인 주소: WWW.NAVER.COMDNS서버 : 전화번호부 같은 역활DNS서버->해당하는 IP주소를 알려줌-> IP로 다시 요청->다시 크롬으로 응답프레임워크:틀이 정해져있음라이브러리 : 공구상자MVC 패턴레이어드 아키텍쳐 : controller -> service->Repositorydb스프링 bean과 의존성 주입(dependency lnjection)@controller @Service @Repository스프링 컨테이너라는 곳에서 컴포넌트 스캔으로 의존성 주입을 이용한다.의존성 주입에는 3가지 방법이 있다생성자 주입, 수정자, 필드 방식필드가 깔끔하긴 하지만 생성자 주입이 안전하다이미 들어가 있는 의존성을 다른 곳에서 쓸 수 있는 가능성이 있어서순환참조 예방http엔 상태코드 값이라는 것이 있다.200~500까지 해당되는 숫자의 메시지가 다르다.restAPI데이터베이스유일성과 최소성을 만족해야 하는 것 : pkjpa 자바 orm 기술의 표준 인터페이스트랜잭션 : 데이터베이스 작업을 하나로 묶어주는 논리적 단위입니다.영속성 컨텍스트jpa에서 엔티티를 관리하는 임시 메모리, 버퍼와 같은 개념.패키지 구조entity 자바객체들이 들어갈 패키지미션은 깃에 레퍼지토리만들기인데.일단 인텔리제이에서프로젝트에서 commit 이라는 단어를 누른 후마우스 오른쪽 버튼을 눌러 addvcs를 클릭한 후 커밋을 누른다.그 후 깃에 가서 레퍼지토리를 만들고그 주소를복사하여 git->mange remote버튼을 클릭하여 git 주소를 입력하면 된다상단에 git의 master라고 되어 있는 부분을 main으로 바꿔 주고git->commit and push 버튼을 눌러주면 해당 프로젝트로 git에 업로드 된다.강의 프로젝트의 기본 패키지 구성은domain->constant->entity->repository로 구성되어 있다.엔티티 안에 기본 뼈대인 추상 클래스를 하나 만들고그 클래스를 상속하는 뼈대의 테이블 구조와 같게 만든다그리고 레퍼지토리 또한 테이블 구조와 같게 만든다.아직 이 개념이 익숙하지 않아 무지성으로 따라하는 중이다.코틀린에선 var라는 것을 사용하는데분명 자바스크립트에서는 권고하지 않는다 라며 사용을 권장하지 않고 let이라는 것을 사용하도록 유도했다근데 코틀린은 조금 다른 것인가 궁금증이 든다그리고 내가 미처 생각하지 못했는데 난 코틀린을...해본적이 없었다이걸 신청하고 나서 깨달았다.물론 자바나 스프링 모든 걸 다 할 순 있지만. 해본 적 없는 것을 한다고 한 내 호기로움이 제법 무섭기도하다.그리괴 인텔리제이에서 일대다 다대일의 매핑을 해주는어노테이션이 있는 것이 너무 신기하고 사용하기 좋은 거 같다.아직 제대로 한 것이 없어서 반성이나 고쳐야 할 점 보단. 일단 따라가기에 너무 급급했던 것 같다.특히 난 이클립스를 주로 쓰고 인텔리제이는 많이 안 써봐서 낯설고 단축키에 대한 연습이 더 필요할 거 같다그리고 git에 푸시를 할 때 처음엔 무조건 에러나고 두번째엔 되는데 이 현상 또한 왜 그런지 한 번 살펴볼 필요가있을 거 같다.
웹 개발