본문 바로가기

스터디

(23)
[ draw.io ] 유스케이스 작성법 https://app.diagrams.net/ Flowchart Maker & Online Diagram SoftwareFlowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit dapp.diagrams.net  유즈케이스 다이어그램 (Usecase Diagram)- 유스케이스 다이어그램은 사용자와 프로그램 간의 ..
[ Git ] 깃 브랜치 전략 세우기 ( + git 명령어 ) 깃 브랜치를 운영하는 방법론- gitflow : master, develop, feature, release, hotfix 브랜치를 설정하고 운영하는 방식 ( 규모가 크면 )- github flow : main(master), feature 브랜치만으로 운영하는 방식 ( 소규모 ) Master 브랜치:제품 배포가 완료된 안정된 코드가 위치하는 브랜치입니다.이 브랜치의 각 커밋은 하나의 배포 가능한 버전을 의미합니다.Develop 브랜치:개발 중인 코드가 모이는 브랜치입니다.새로운 기능 개발이 완료되면 이 브랜치로 병합됩니다.다음 배포 버전을 준비하는 브랜치입니다.Feature 브랜치:새로운 기능이나 개선사항을 개발하는 브랜치입니다.Develop 브랜치에서 분기되며, 개발이 완료되면 Develop 브랜치로..
[Git ] 깃헙 프로젝트와 이슈 정리하기 https://www.toptal.com/developers/gitignore gitignore.ioCreate useful .gitignore files for your projectwww.toptal.com   애자일 개발 (Agile Software Development)- 프로그래밍에 집중하여 개발 환경에 따라 유연하게 소프트웨어를 개발하는 방식- 애자일 개발 프로세스는 기획 - 개발 - 출시로 구성된 짧은 주기의 사이클이 반복되는 형식입니다.- 한 마디로 개발주기를 짧게 반복하여 위험을 최소화시키고 소통을 중요시 여기는 방식이 애자일 개발 방식입니다. 마일스톤이란??- 프로젝트 진행 과정에서 특정할 만한 건이나 표를 말한다.- 예를 들어, 프로젝트 게약, 착수, 인력투입 등 프로젝트 성공을 위해..
[Spring Boot] 인텔리제이 설정 및 플러그인 1. Auto Import코드를 변경될 때 마다 import 문을 삽입 / 삭제- Show auto-import tooltip (check)- Insert imports on paste (Always)- Oprimize imports on the fly (check)  2. Atom Material Icons- 메뉴 아이콘의 가독성을 높혀준다. 3. JPA Buddy- JPA 및 IntelliJ IDEA 내 관련 기술을 이용해 작업을 할 수 있습니다.  4. GitToolBox- Git사용시 관련된 내용이 가독성을 높혀준다.- 해당 코드를 누가 Commit했는지, 현재의 브랜치는 어디인지 등의 정보를 보여준다.  5.  Key Promoter X- IDE 내에서 돌아가는 동작 중에서 마우스 행한 동작을 ..
[Spring Boot] Springdoc-OpenApi ( Swagger ) build.gradleimplementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'   springdoc-openapi-starter-webmvc-ui를 사용하면 Swagger UI를 통해 REST API 문서를 시각적으로 확인할 수 있습니다.@RestController@RequestMapping("/api/v1")@Slf4jpublic class ResponseController { // http://localhost:8888/api/v1 @GetMapping("") public CustomResponse user(){ var user = new UserRequest(); user.setUser..
[Spring Boot] 스프링 부트 Response Entity 응답1. String : 일반 Text Type 응답2. Object : 자동으로 Json 변환되어 응답 상태값은 항상 200 OK3. ResponseEntity : Body의 내용을 Object로 설정 상황에 따라서 HttpStatus Code 설정4. @ResponseBody : RestController가 아닌곳(Controller)에서 Json 응답을 내릴 때 Spring Boot에서 ResponseEntity는 HTTP 응답을 보다 세밀하게 제어할 수 있는 방법을 제공합니다. ResponseEntity를 사용하면 상태 코드, 본문(body), 헤더(headers)를 모두 설정할 수 있습니다.ResponseEntity의 구성 요소Status Code: HTTP 상태 코드를 설정할 수 있습니다.Bo..
Spring Web MVC에서 요청 마다 Thread가 생성되어 Controller를 통해 요청을 수행할텐데, 어떻게 1개의 Controller만 생성될 수 있을까요? 각각의 Thread는 singleton으로 생성된 Bean( ⇒ Controller 포함 ) 들을 참고하여 일을 함*이 때 생성되는 Bean들은 기본적으로 singleton> Controller 역시 singleton으로 각각의 Thread들이 하나를 공통적으로 사용한다고 보면 됨 Controller 객체는 Heap에 생성되지만 class에 대한 정보는 Method  영역에 저장됨 > 모든 Thread들이 접근 가능 하나의 Singleton Controller가 수많은 요청을 처리하는 것이 아니고 각각의 Thread가 singleton으로 생성된 Controller를 참고하여 요청을 실행함    결론생성한 Controller 클래스에 대한 정보가 JVM 메모리 영역 중 Method ..
spring Application 메소드 실행 방법 스프링 어플리케이션을 구동할 때 메서드를 실행시키는 방법CommandLineRunner, ApplicationRunner를 구현한 클래스를 만들어서 실행시키는 2가지 방법Spring의 ApplicationEvent를 사용하는 방법, @Postconstruct를 사용한 방법,InitializingBean 인터페이스를 구현하는 방법, @Bean의 initMethod를 사용한 방법  CommandLineRunner인터페이스는 구동 시점에 실행되는 코드가 자바 문자열 아규먼트 배열에 접근해야할 필요가 있는 경우에 사용다음과 같이 CommandLineRunner 인터페이스를 구현한 클래스에 @Component 어노테이션을 선언해두면 컴포넌트 스캔이되고 구동 시점에 run 메소드의 코드가 실행imp..
@bean 과 @component 의 차이 스프링 MVC에서는 @Controller, @Service, @REpository 등으로 빈을 등록할 수 있다.configuration 관련 객체들은 @Bean 과 @Component 로 스프링 컨테이너에 객체를 빈으로 등록 할 수 있다.@Bean반환되는 객체(인스턴스)를 개발자가 수동으로 빈 등록@Configurationpublic class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(); }}@Component스프링이 런타임시 componet 를 스캔해 자동으로 빈을 찾고 등록@Componentpublic class Utility { // ..
Servlet Filter, Spring Interceptor 차이 간단 요약 FilterInterceptor관리되는 컨테이너웹 컨테이너스프링 컨테이너Request/Response 객체 조작 가능 여부OX용도* 공통된 보안 및 인증/인가 관련 작업 * 모든 요청에 대한 로깅 또는 감사 * 이미지/데이터 압축 및 문자열 인코딩 * Spring 과 분리되어야 하는 기능* 세부적인 보안 및 인증/인가 공통 작업 * API 호출에 대한 로깅 또는 감사 * Controller 로 넘겨주는 정보(데이터)의 가공  Servlet Filter필터는 말 그대로 요청과 응답을 거른 뒤 정제하는 역할을 한다. 자바에서 제공Dispatcher Servlet에 요청이 전달되기 전/후에 URL 패턴에 맞는 모든 요청에 대해 부가작업을..