개인 공부
-
spring[5] ComponentScan과 Component개인 공부/spring 2021. 5. 16. 08:48
Component Sacn 지금까지 빈을 등록하기 위해서 AppConfig class에 사용자가 일일히 @Bean으로 관리해주어야 했습니다. 하지만 이건 개발자에게 너무 귀찮은 작업이고 누락하게 되면 큰 장애가 발생하게됩니다. 그래서 Spring은 @Bean으로 일일히 등록하지 않아도 자동으로 스프링 빈으로 등록해주는 @ComponentScan과 @Component annotation을 제공합니다. 컴포넌트 스캔을 사용하게 되면 DI가 애매해집니다. 지금까진 수동으로 의존관계를 주입했지만 Bean이 자동으로 등록되게되니 의존관계를 설정할 수 있는 부분이 사라진것입니다. 그래서 @Autowired annotation을 지원한다. @Autowired에 대한 부분은 다음에 공부해보겠습니다. Component ..
-
Spring[4] Spring의 Singleton Container개인 공부/spring 2021. 5. 15. 19:54
Singleton 싱글톤이란? Web application은 일반적으로 다수의 사용자가 하나의 Server에 동시의 많은 요청을 하게됩니다. Singleton으로 디자인하지 않은 Web application의 java는 사용자의 요청마다 하나의 객체를 생성하게 되고 10,000건의 요청은 10,000개의 객체를 상속받은 객체라면 그 이상의 객체를 생성하게 됩니다. 이러한 방식으로 디자인된 application은 엄청난 메모리 낭비를 하게됩니다. 싱글톤 디자인을 사용하게 되면 java server에서 여러개의 요청이 들어와도 class Instance가 1개만 생성되는 것을 보장하게됩니다. java로 싱글톤 패턴을 구현해보기static final을 사용하여 java server에서는 오직 한개의 insta..
-
Spring[3] Spring Container와 Spring bean개인 공부/spring 2021. 5. 15. 11:48
Spring 적용해보기 AppConfig Spring 기반으로 변경 @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } } 기존의 AppConfig 파일을 Spring annotation을 사용하여 Spring Container로 등록합니다. Spring Container란 ApplicationContext를 Spring Container라 부릅니다. Ap..
-
spring[2] Spring을 사용하지 않은 Java Web Project개인 공부/spring 2021. 5. 14. 22:50
Spring을 사용하지 않은 Java Web Project control과 view는 생각하지 않고 Model service 로직만 생각하여 예시를 들어보겠습니다. 회원가입 Model (class) 모델 객체를 만듭니다. Service (Interface) 인터페이스를 만들고 ServiceImpl (class) 구현체를 만듭니다. code를 테스트 해봅니다. Model 객체 생성 public class Member { private Long id; private String name; public Member(Long id, String name) { this.id = id; this.name = name; } public Long getId() { return id; } public void setId..
-
MVC 패턴개인 공부/spring 2021. 5. 10. 14:03
MVC란 MVC 탄생 배경 예전의 프로그램 개발자들은 자기 마음대로 프로그램을 구성하고 작성했습니다. 이런 프로그램은 초기에 만들기엔 괜찮았을지 몰라도 유지보수나 협업을 하는 과정에서 누구와 만나냐에 따라 프로그램 구조가 달라지고 유지보수도 팀이 바뀔때마다 구조를 새로 배우며 작업을 해야했습니다. 그래서 이걸 해결하기 위해 프로그램을 작성할때 협업과 유지보수가 쉬운 코드 구성법에 대해 고민하게 되었고 그렇게 수 많은 패턴들이 공유되고 논문으로 발표되었고 그 중 하나의 패턴이 MVC 패턴입니다. MVC 정의 MVC Pattern이란 개발자들이 소프트웨어를 개발할 때 사용되는 디자인 패턴을 말합니다. 수많은 디자인 패턴이 존재하는데 그 중 MVC 패턴은 Model-View-Controller로 client와..
-
Spring[1] spring과 객체지향개인 공부/spring 2021. 5. 9. 10:34
Spring의 역사 spring은 최초 java의 web application 로직을 가지고 있는 server application인 EJB(Enterprise JavaBeans) 사용의 어려움때문에 EJB를 사용하지 않고 web project를 더 쉽게 만들 수 있도록 Rod Johnson이 3만줄 정도의 코드소스와 책으로 선보임. 그 후 Juergen Hoeller와 Yann Caroff가 Rod Johnson에게 오픈소스 프로젝트를 제안하여 지금의 Spring으로 개발을 지속해오는 중 Spring이란 spring은 spring의 생태계를 의미할 수 있다. spring framework spring framework이란 핵심 > DI, AOP, container 웹기술 > MVC, WebFlux 데이..
-
Web 이란개인 공부/spring 2021. 5. 6. 15:17
Web Web이란 인터넷의 다양한 service 중 하나의 service timberners-lee가 창시 이전의 컴퓨터들의 정보 공유는 컴퓨터 자체에 사용자가 물리적으로 접근하여 로그인한 뒤 컴퓨터 사용자가 저장해놓은 방식 혹은 프로그램의 따라 정보에 접근하여야 했기 때문에 컴퓨터의 정보를 공유 받는 것보다 직접 물어보는게 더 빨랐을 정도, 이 문제점을 해결하가 위해 웹(Web)을 고안해냄 정보의 공유 공간 Client와 Web-Server간의 요청과 응답 client의 request와 web-server의 response는 서로간의 규약인 HTTP를 통해 이뤄진다. 간단한 HTTP 특징 비연결성 stateless 무상태 응답코드 메서드 request와 response 자세한 내용 https://ili..
-
HTTP개인 공부/spring 2021. 4. 28. 21:16
IP Internet Protocol (인터넷 프로토콜) 복잡한 인터넷 망에서 client가 지정한 IP 주소(IP Address)로 데이터를 전달하는 역할 패킷(Packet)이라는 통신 단위로 데이터 전달 packet [출발지IP][목적지IP][기타][전송데이터] 의 규칙으로 전송 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 받을 수 없는 서비스 불능 상태여도 패킷은 일방적으로 전송돼고 전송한 client는 전송이 성공한 것만 확인할 수 있을 뿐 상대방이 성공적으로 전송한 내용을 받았는지를 확인할 수 없다. 비신뢰성패킷의 전송 속도차나 환경차이에 의한 순서의 확실성이 불확실함 위 비연결성, 물리적인 이유로 인한 중간의 패킷의 손실 가능성 프로그램 구분 하나의 IP에서 여러개의 어플리케이션이..