Back-end40 [Spring] 컴포넌트 스캔 컴포넌트 스캔과 자동주입 시작하기이제까지는 @bean이나 xml을 통해서 bean을 설정정보에 직접 등록하도록 하였는데, 이렇게 하면 누락문제와 반복문제가 생긴다. 그래서 스프링은 설정정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능과, 의존관계를 자동으로 주입해주는 @Autowired 기능도 제공한다. 컴포넌트 스캔을 사용하려면 @ComponentScan을 설정정보에 붙여주면 된다. 실제 프로젝트에서도 이를 사용하는지 알아보려고@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentSca.. 2024. 11. 29. [카카오테크캠퍼스] STEP2 회고 카카오테크캠퍼스 2단계 회고를 써보고자 한다. 카카오테크캠퍼스 2단계는 방학 6주간 이루어졌다.주요 활동을 먼저 정리해보겠다! 주요 활동과제과제는 카카오톡 선물하기의 서버를 클론코딩하는 것이었다. 6주간 개발하는 것이고, 한주한주 구현해야하는 범위가 정해져있었다. 또한 그 안에서도 3가지 파트로 나뉘었다.그래서 1주일 내에 해야 할 과제가 총 3개였다.과제 하나를 하고 바로 다음과제를 할 수 있는 것이 아니라, 내가 과제를 완료하고 pr을 날리면 멘토님이 내 코드를 보시고 코드리뷰를 달아주신다. 내가 이를 수정해서 다시 pr을 날리고, 이를 멘토님이 merge해주시면 다음 과제를 할 수 있게 된다. 멘토님께서 바쁘시면 merge가 미뤄지기도 하고, 과제가 어려운 경우도 있어서 세 과제를 금요일까지 다 하.. 2024. 11. 25. [Spring] 싱글톤 컨테이너 웹 애플리케이션과 싱글톤기존 appConfig 방식으로 객체를 생성하면, 호출할 때마다 새로운 객체를 생성한다.이렇게 되면 우리가 100번의 요청을 하면 100개의 객체가 만들어져서 메모리 효율 상 좋지 않다.이를 해결하기 위해 나온 것이 싱글톤이다. 싱글톤 패턴클래스의 인스턴스가 딱 1개만 생성되는 것을 보장이를 위해서는 해당 클래스의 생성자를 private로 만든다. -> 외부에서 new를 통해서 새로 객체를 만들지 못한다.package hello.core.singleton; public class SingletonService {//1. static 영역에 객체를 딱 1개만 생성해둔다.private static final SingletonService instance = new SingletonSe.. 2024. 11. 14. [카카오테크캠퍼스] 3단계 개발 3주차 회고 이번 주는 개발 대신 멘토링과 재정비를 했다.멘토링 내용Fork 뜨지 않고 작업하기깃 충돌 관련해서 여쭤보다가 멘토님께서 카테캠에 있는 레파지토리에서 각자 fork해서 작업하고 pr을 날리는 지금 로직보다는카테캠에 있는 레포를 그대로 로컬에 clone해서 각자 브랜치에서 작업하고 pr을 날리는 것이 더 좋을 것 같다고 하셨다.이제까지는 당연히 fork를 해야하는 줄 알았는데, 신기했고 막상 해보니까 더 깔끔하고 좋은 것 같다.이런식으로 각자 파트에서 주차별로 브랜치를 만들고, 머지되면 해당 브랜치는 삭제 할 예정이다. 외부 api를 사용하는 파일의 네이밍 고민내가 담당한 파트에서는 외부 api인 open api를 사용하는 부분이 있다. 아무래도 이 부분은 현재 내가 구현하고 있는 도메인과는 분리해야할 것.. 2024. 10. 14. [카카오테크캠퍼스] 3단계 개발 2주차 회고 이번 주는 엔티티 생성을 하기로 하였다. 회의내역백, 프론트 회의API 문서와 기능명세서의 필드 종류가 다르다공고글 부분에서 필드가 기존 형태와 다른 문제가 있었다. 이 부분은 내가 담당한 부분이라 필요한 필드를 결정해서 모두 api명세서에 반영하였다. 번역 기능을 백엔드측에서 해주어야 할 것 같다.프론트엔드 측에서 찾아본 결과 고정된 문구는 번역이 가능하지만, 백엔드에게 받아 띄우는 데이터는 번역이 어려울 것 같다고 하셔서 이 부분도 백엔드 측에서 해주면 좋겠다고 하셨다. 메인 기능과 부가기능 구별개발 할 때 메인 기능과 부가기능을 구별하는 것이 좋을 것 같다는 의견이 나와서 다같이 구별해보았다.우리 기능 중 번역 기능과 근로계약서를 잘 쓰는 사장님에게 뱃지를 주는 기능은 부가기능으로 설정하기로 하였.. 2024. 10. 4. [spring] 스프링 컨테이너와 스프링 빈 스프링 컨테이너 생성ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);이렇게 하면 스프링 컨테이너가 생성된다. ApplicationContext는 인터페이스이다. AnnotationConfigApplicationContext는 이 인터페이스의 구현체이다. 스프링 컨테이너를 만들 때에는 구성정보를 설정해주어야한다. 여기서는 AppConfig.class를 구성정보로 지정하였다. 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보로 스프링 빈을 등록한다.빈 이름은 메서드 이름으로 만들어지고, 직접 부여할수도 있다.빈 이름은 무조건 서로 달라야한다. 스프링 컨테이너는 설정 정보를 참고해서 .. 2024. 10. 4. 이전 1 2 3 4 ··· 7 다음