[정리] Http Method 정리
·
개발/정리
HttpMethod란 클라이언트와 서버사이에 이루어지는 요청과 응답데이터를 전송하는 방식을 일컫는다. 특히, 클라이언트가 서버에게 해당 URI에 요청을 보낼때 이러한 방식으로 요청을 보냅니다~ 라고 알려주는 것이다. 1. HttpMethod 종류 (1) GET 특정 리소스 표시 (읽기) (2) POST 특정 리소스에 엔티티를 제출할때 사용 (추가) (3) PUT 목적 리소스를 요청 데이터로 바꾼다. 데이터가 없다면 추가한다. (전체 수정 or 추가) (4) PATCH 리소스의 부분만을 수정하는데 사용한다. (부분 수정) (5) DELETE 특정 리소스 삭제 (6) HEAD GET method와 같지만 Body를 포함하지 않는다. (7) OPTIONS 목적 리소스의 통신을 설정하는데 사용, 내가 어떤 me..
[Article] Ransomware
·
개발/Article
ScanSource suffers a cyberattack | Digital Watch Observatory The attack affected the company's operations in North America and Brazil. dig.watch 미국의 큰 클라우드 기업인 ScanSource가 랜섬웨어 공격을 받았다고 한다. 현재 피해규모를 산정하고 있지만 랜섬웨어 공격을 한 사람을 밝히지 못했다고 한다. 랜섬웨어 공격이란 피해자의 데이터를 암호화하여 '암호화를 풀고싶다면 돈을 내라' 라고 하는것이다. 랜섬웨어는 주로 이메일이나 신뢰하지 않은 링크에서 파일 다운로드와 같은 경로로 공격한다. 랜섬웨어를 방지하려면 다음과 같은 방법이 있다고 한다. (1) 신뢰할 수 없는 링크 클릭 금지 (2) ..
[Spring Boot] 어노테이션 정리
·
개발/Spring Boot
@SpringBootApplication Spring Boot를 자동으로 실행시켜주며 @ComponentScan을 통해 Component를 Bean으로 등록시킨다. @EnableAutoConfiguration을 통해 미리 정의해둔 설정파일을 Bean으로 등록시킨다. @ComponentScan @Component, @Service, @Repository, @Controller, @Configuration 이 붙은 빈들을 찾아서 Context에 빈을 등록시켜준다. @Component 생성한 클래스를 Bean으로 등록시킬때 사용한다. @Bean 개발자가 컨트롤 불가능한 외부 라이브러리를 Bean으로 등록할때 사용한다. @Controller Controller로 사용되는 어노테이션이다. @Service 비즈니스..
[Spring Boot] Setter vs Constructor vs Builder
·
개발/Spring Boot
Spring boot로 코딩을 하다보면 객체의 값을 변경해줘야 할때가 있다. 방법은 크게 Setter, 생성자, Builder 3가지로 나뉜다. 1. Setter (자바빈즈 패턴) 자바 개발자들은 setter를 지양하라고 한다. 그럼 왜 setter를 지양하고 새로 객체를 생성해야 하는 생성자나 Builder를 사용해야 할까.. (1) 일관성 먼저 setter를 사용하면 언제든 값을 바꿀수 있다는 말이 된다. 다시말해 값을 바꿀수 없는 불변한 객체를 만들지 못한다는 말이 된다. (2) 가독성 만약 객체의 속성이 엄청 많아서 엄청나게 많은 setter가 있다고 가정한다. 그러면 객체만다 일일히 setName, setAge, ~~~ 을 계속 해주다보면 코드가 아주 더러워지고 나중엔 빠진 set 메소드를 찾고..
[Spring Boot] Controller, Service, Repository
·
개발/Spring Boot
Controller와 Service, Repository는 각각 역할이 있다. 흐름은 위와 같다. 컨트롤러는 client와 소통을 하며 데이터를 받거나 넘겨주고 서비스에서는 비즈니스 로직만을 작성한다. 여기서 Dao가 DB와 연결하며 CRUD를 수행하는데 이를 Repository라고 보면 된다. 1. Controller 가장 큰 역할은 Client와의 소통이다. Client로 부터 받은 데이터를 Service로 넘겨주어 Service가 비즈니스 로직을 수행하도록 한다. 그리고 Service로부터 데이터를 받아 Client로 넘겨준다. @RestController public class PostsApiController { private final PostsService postsService; @Post..