TIL_250211

듀듀·2025년 2월 11일

spring_TIL

목록 보기
1/53

오늘은 내일부터 시작될 프로젝트를 위해 깃허브 사용법과 스프링부트 용어 정리를 하였다.

스프링 부트 용어 정리

스프링의 특징에는 제어의 역전(IoC)가 있다.
제어의 역전이란, 간단히 말해서 객체의 생성 및 제어권을 사용자가 아닌 스프링에게 맡기는 것이다.
지금까지는 사용자가 new 연산을 통해 객체를 생성하고 메소드를 호출했다. IoC가 적용된 경우에는 이러한 객체의 생성과 사용자의 제어권을 스프링에게 넘긴다. 사용자는 직접 new를 이용해 생성한 객체를 사용하지 않고, 스프링에 의하여 관리당하는 자바 객체를 사용한다. 이 객체를 빈(Bean)이라 한다.

의존성 주입(DI): 객체 간의 의존 관계를 자동으로 설정해주는 개념
이를 통해 결합도를 낮추고, 테스트 용이성과 유지보수성을 높일 수 있다.

Annotation(@): 사전적 의미로는 주석이다. 특별한 의미, 기능을 수행하도록 하는 기술 = 프로그램에게 추가적인 정보를 제공해주는 메타데이터
-> 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보 제공

@ComponentScan
@Componen와 @Service, @Repository, @Controller, @Configuration이 붙은 클래스 Bean들을 찾아서 context에 bean등록을 해주는 어노테이션

@Component
개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션

@Bean
개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용되는 어노테이션

@Autowired
속성(field), setter method, constructor(생성자)에서 사용하며, Type에 따라 알아서 Bean을 주입해준다.
무조건적인 객체에 대한 의존성을 주입시킨다.
이 어노테이션을 사용할 시, 스프링이 자동적으로 값을 할당한다.
Controller 클래스에서 DAO나 Service에 관한 객체들을 주입 시킬 때 많이 사용한다

Bean을 주입받는 방식
@Autowired
setter
생성자(AllArgsConstructor)
@RestController
spring에서 Controller 중 view로 응답하지 않는 Controller
method의 반환 결과를 JSON 형태로 반환한다

@Controller VS @RestController
@Controller

API와 view를 동시에 사용하는 경우에 사용
view(화면) return 이 주목적
@RestController

View가 필요없는 API만 지원하는 서비스에서 사용
즉, @RestController = @Controller + @ResponseBody

@EnableAutoConfiguration
Spring Application Context를 만들 때 자동으로 설정하는 기능을 켠다

@Configuration
@Configuration을 클래스에 적용하고, @Bean을 해당 Class의 method에 적용하면 @Autowired로 Bean을 부를 수 있다.

@RequestMapping
요청 URL을 어떤 method가 처리할지 mapping해주는 어노테이션
Controller나 Controller의 method에 적용
-> @RequestMapping("/list")

@GetMapping
@PostMapping
@PutMapping

@RequestAttribute
Request에 설정되어 있는 속성 값을 가져올 수 있다.

@RequestBody
요청이 온 데이터 Http Body(JSON이나 XML형식)를 바로 Class나 model로 매핑하기 위한 어노테이션

@RequestParam
@PathVariable과 비슷
요청 URL Query Parameter에서 가져와 매핑해주는 것이다.

@PathVariable
Method parameter앞에 사용하면서 해당 URL에서 {특정값}을 변수로 받아 올 수 있다.

Lombok
@NoArgsConstructor
기본 생성자를 자동으로 추가
기본생성자의 접근 권한을 protecred로 제한
dto 상단

@AllArgsConstructor
모든 필드 값을 파라미터로 받는 생성자 추가
dto 상단

@RequiredArgsConstructor
final이나 @NonNull인 필드 값만 파라미터로 받는 생성자 추가
생성자 정의가 필요한 Controller, Component, Service 클래스의 대부분의 상단

@Getter
class 내 모든 필드의 Getter method 자동 생성
dto 상단

@Setter
class 내 모든 필드의 Setter method를 자동 생성


깃허브 명령어 정리

git 명령어
git init: 새로운 저장소 생성 @@@초기화이므로 프로젝트를 새로 생성할때만 해야 함@@@
git clone 사용자명@호스트:/원격/저장소/경로: 저장소 복제
git add <파일명>
git add .: 파일 추가
git commit -m "메시지": 커밋 생성
git status: 파일 상태 확인
git remote add origin [내 깃허브 주소]: github repository랑 내 로컬 프로젝트 연결
git remote -v: 잘 연결되었는지 확인
git branch: 브랜치 목록
git branch <브랜치 이름>: 새 브랜치 생성
git checkout -b <브랜치 이름>: 브랜치 생성 및 이동
git checkout master: master branch로 되돌아 옴
git branch -d <브랜치 이름>: 브랜치 삭제
git push origin <브랜치 이름>: 만든 브랜치를 원격 서버에 전송
git push origin master: master 서버에 업로드
git pull: 원격 저장소의 변경 내용이 현재 디렉토리에 가져와서 병합



용어가 익숙하지 않아서 헷갈린다...

0개의 댓글