본문 바로가기

분류 전체보기88

URI와 웹 브라우저 요청 흐름, Stateful URI (Uniform Resource Identifier) 리소스 식별자URI는 리소스 로케이터 - (리소스 위치 URL), 리소스 이름(URN) 또는 둘다 추가로 분류될 수 있다.URI 안에 URL과 URN이 있다.https://www.ietf.org/rfc/rfc3986.txt Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원으로 URI로 식별할 수 있는 모든 것 (제한 없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URL : 리소스가 있는 위치를 지정URN : 리소스에 이름을 부여- 위치는 변할 수 있지만 이름은 변하지 않는다. ex) 책의 isbn https://www.google.com/search?q=hello&hl=koscheme://[userin.. 2024. 6. 4.
IP(인터넷 프로토콜), PORT, DNS 인터넷 프로토콜의 약자로IP 패킷이라는 통신 단위로 지정한 IP 주소에 데이터를 전달하는 역할을 한다. IP패킷 정보- 출발지 IP- 도착지 IP- 전송 데이터- 등 IP프로토콜의 한계 - 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송됨 - 비신뢰성 : 패킷이 중간에 사라지거나 패킷이 순서대로 안오면??? 해결방법이 없다. (패킷들이 다른 노드를 탈 경우) - 프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?? 구분 방법이 없다. 이를 위해 TCP프로토콜이 생겼다. 인터넷 프로토콜의 4계층애플리케이션 계층 - HTTP, FTP (웹브라우저, 네트워크게임, 채팅 프로그램) - socket라이브러리전송 계층 - TCP, UDP인터넷 계층 - IP 네.. 2024. 6. 3.
Bean Scope빈스코프 1. 싱글톤 스코프 - 빈을 조회하면 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈을 반환한다. 2. 프로토타입 스코프 - 빈을 조회하면 스프링 컨테이너는 항상 새로운 인스턴스를 생성하고 필요한 의존관계를 주입하여 초기화하고 반환한다. 이후 클라이언트에게 제공하고 더이상 관리하지 않는다. 빈을 관리할 책임은 클라이언트에게 있다. 고로 @PreDestroy같은 종료 메서드가 호출되지 않는다. 싱글톤 안에서 프로토타입 빈 사용하는 경우 (프로토타입 스코프를 싱글톤 빈과 함께 사용할 시) - 싱글톤 안의 프로토타입 빈은 이미 DI가 끝났기 때문에 안의 디펜던시가 프로토타입 빈이라고 해도 새로운 프로토타입 빈이 만들어지지 않는다.이를 해결하기 위해 ObjectProvider 클래스를 이용한다. 해당 클래스는.. 2024. 6. 2.
에디터 글 DB 저장, 이미지 base 64인코딩 데이터 DB저장 크게 스프링과 관련있는 것 같지는 않지만 카테고리 추가하기 귀찮기 때문에 여기다가 적어야겠다. toast ui에 있는 데이터를 그냥 getHTML()해서 DB에 저장하고 이걸 불러오면 될 줄 알았는데 아니었다.UI단과 DB에 저장될 때 인식 가능한 캐릭터가 다르기 때문에 특정 문자는 바꿔주어야한다. 대표적인 것이 " ' &이런 문자다.다만 인코딩을 해줘야할 것 같지만, 그대로 getHTML() 이후 server단에서 콘솔을 찍어보면 인코딩이 된 상태로 db에 저장됨을 확인할 수 있다.function encodeHTML(html) { return html.replaceAll("&", "&") .replaceAll("", ">") .rep.. 2024. 5. 29.
@AutoConfig, @ComponentScan, @Autowired, Filter AppConfig에서는 @bean으로직접 설정정보 작성하고 의존관계도 따로 명시해야한다.AutoConfig (@ComponentScan, @Autowired)를 사용하면 DI를 알아서 해준다// configurepackage hello.core;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.FilterType;@Configuration@ComponentScan( excludeFilters = @ComponentScan.Filter(type = F.. 2024. 5. 28.
Spring Container의 생성 과정 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);1. 해당 구문을 통해서 AppConfig의 정보를 준다.  2. 스프링 컨테이너가 만들어지면서 @Bean 어노테이션이 붙은 메소드의 이름을 빈 이름으로 설정하고 빈 객체를 리턴값으로 설정한다. 이렇게 스프링 빈을 등록한다.@Beanpublic MemberRepository memberRepository(){ return new MemoryMemberRepository();}3. 스프링 빈이 의존관계 설정을 해준다. - Configuration의 설정 정보를 참고해서 스프링 컨테이너가 DI를 해준다.싱글톤을 준수한다.@Bean(name.. 2024. 5. 23.