본문 바로가기

전체 글315

[카카오테크캠퍼스] 3단계 개발 3주차 회고 이번 주는 개발 대신 멘토링과 재정비를 했다.멘토링 내용Fork 뜨지 않고 작업하기깃 충돌 관련해서 여쭤보다가 멘토님께서 카테캠에 있는 레파지토리에서 각자 fork해서 작업하고 pr을 날리는 지금 로직보다는카테캠에 있는 레포를 그대로 로컬에 clone해서 각자 브랜치에서 작업하고 pr을 날리는 것이 더 좋을 것 같다고 하셨다.이제까지는 당연히 fork를 해야하는 줄 알았는데, 신기했고 막상 해보니까 더 깔끔하고 좋은 것 같다.이런식으로 각자 파트에서 주차별로 브랜치를 만들고, 머지되면 해당 브랜치는 삭제 할 예정이다. 외부 api를 사용하는 파일의 네이밍 고민내가 담당한 파트에서는 외부 api인 open api를 사용하는 부분이 있다. 아무래도 이 부분은 현재 내가 구현하고 있는 도메인과는 분리해야할 것.. 2024. 10. 14.
[spring 이슈해결] Value too long for column "SELF_INTRODUCTION CHARACTER VARYING(255) 오늘은 Value too long for column "SELF_INTRODUCTION CHARACTER VARYING(255) 관련 에러에 대해 알아볼 것이다! 사실 방금 내가 만난 친구다 에러 발생 이유Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.DataIntegrityViolationException: could not execute statement [Value too long for column "SELF_INTRODUCTION CHARACTER VARYING(255)": 이런 에러가 떴다.. 2024. 10. 14.
[BombLab] 환경설정(맥북 사용자) 만약 윈도우 노트북을 가지고 있고, 우분투가 설치되어있다면 이 과정은 전부 건너뛰어도 됩니다! 이 앱이 있으면 우분투가 설치된겁니다!(버전은 22.04, 24.04 상관 없음) 우리는 x86_64 아키텍쳐를 기반으로 실행되는 밤랩을 해야하는데, 맥북의 경우 arm64 아키텍쳐입니다.따라서 맥북 내에서 이를 실행하는 것은 불가능하고, 우분투 서버를 만들어서 실행해야합니다.(아마 시스템프로그램에서 하는 찐 밤랩은 따로 서버가 있어서 이에 대한 문제는 없을 것입니다.) 윈도우는 우분투를 깔아서 컴퓨터 내에서 실행할 수 있지만, 제가 보기에 우분투를 설치하는 것보다 서버를 만들어서 하는 방법이 더욱 간편해서 우분투 설치가 안되어있으시다면 아래 방법을 따라하시는 것을 추천드립니다. 아주 간단하니까 겁먹지 말고 따.. 2024. 10. 6.
[카카오테크캠퍼스] 3단계 개발 2주차 회고 이번 주는 엔티티 생성을 하기로 하였다. 회의내역백,  프론트 회의API 문서와 기능명세서의 필드 종류가 다르다공고글 부분에서 필드가 기존 형태와 다른 문제가 있었다. 이 부분은 내가 담당한 부분이라 필요한 필드를 결정해서 모두 api명세서에 반영하였다. 번역 기능을 백엔드측에서 해주어야 할 것 같다.프론트엔드 측에서 찾아본 결과 고정된 문구는 번역이 가능하지만, 백엔드에게 받아 띄우는 데이터는 번역이 어려울 것 같다고 하셔서 이 부분도 백엔드 측에서 해주면 좋겠다고 하셨다. 메인 기능과 부가기능 구별개발 할 때 메인 기능과 부가기능을 구별하는 것이 좋을 것 같다는 의견이 나와서 다같이 구별해보았다.우리 기능 중 번역 기능과 근로계약서를 잘 쓰는 사장님에게 뱃지를 주는 기능은 부가기능으로 설정하기로 하였.. 2024. 10. 4.
[spring] 스프링 컨테이너와 스프링 빈 스프링 컨테이너 생성ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);이렇게 하면 스프링 컨테이너가 생성된다. ApplicationContext는 인터페이스이다. AnnotationConfigApplicationContext는 이 인터페이스의 구현체이다. 스프링 컨테이너를 만들 때에는 구성정보를 설정해주어야한다. 여기서는 AppConfig.class를 구성정보로 지정하였다. 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보로 스프링 빈을 등록한다.빈 이름은 메서드 이름으로 만들어지고, 직접 부여할수도 있다.빈 이름은 무조건 서로 달라야한다. 스프링 컨테이너는 설정 정보를 참고해서 .. 2024. 10. 4.
[spring] 관심사 분리 나는 spring의 기초부터 배웠다기보다는 정말 구현을 위한 지식만을 쌓았어서 spring이 어떤 면에서 좋은지, 그리고 의존성 주입 부분이 왜 중요한지 잘 몰랐었는데, 스프링 없이 자바로 관련 기능을 구현해보니까 알 수 있게 되었다.AppConfig로 관심사 분리public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository; }이런 식으로 memberService에서 사용하는 MemberRepository를 생성할 때 코드에서 바로 구현체를 사용해서 생성하면 DIP를 위배한다(클라이언트는 인터페이스만 코드에 써야.. 2024. 10. 2.