반응형

web

    스프링 마이크로서비스 (MSA) 소개

    많은 회사에서 마이크로서비스를 주목하고 있고 도입하고있다. 그 이유가 무엇인지 궁금했고, 알아보기 위해서 마이크로 서비스관련 책을 하나 구입하였다. 생각보다 책이 두껍지만 외국 저서 같지 않게 설명이 자세하게 되어있다. (사례도 많다.) 그럼 이제 마이크로 서비스가 무엇인지 알아보자. 아래 사진을 보자. 우리회사도 그렇고 기존에 웹 애플리케이션은 왼쪽의 사진처럼 하나의 구조로 이루어져있어 war 형태로 배포된다. 모든 서비스가 하나의 애플리케이션으로 구성되어있을 경우에는 새로운 기능을 추가하거나, 성능을 위해 시스템을 나누기 위하는 작업 등등이 너무 어렵다. 그래서 요새 대형 서비스에서는 서비스를 새로 추가하기도 쉽고, 더 많이 사용하는 서비스에 물리적인 자원을 더 할당할 수 있도록 마이크로서비스를 지원..

    애플리케이션 확장 방법 스케일 큐브 (Scale Cube)

    A애플리케이션을 확장하는 데 필요한 세 가지의 주요 접근방식이 있다. 크게 x, y, z 축으로 구분하여 설명한다. 먼저 x축 방향의 확장은 애플리케이션을 복제해서 수평적으로 확장하는 것을 의미y축 방향의 확장은 서로 다른 기능을 분리하는 것을 의미z축 방향의 확장은 데이터 파티셔닝(Partitioning) 또는 샤딩(Sharding)을 의미 y축 방향의 확장이 일체형 애플리케이션에서 마이크로서비스를 적용하여 분리하는 것을 의미한다.예를 들면, 항공사 예약에서 검색 500건당 예약 1건이 발생한다고 한다. 그럴경우 하나의 일체형 애플리케이션으로 만들경우 성능을 좋게 하기 보다는 두 개의 서비스를 분리하여 검색 서비스에 물리적은 리소스를 더 부여하고 예약에 상대적으로 낮게 부여 함으로써 효과적으로 애플리케..

    Http 상태 코드 별 상태

    100번대 : 현재 데이터의 처리 중인 상태 100: 데이터의 일부를 서버가 받은 상태 200번대 : 정상적인 응답 200 : 에러가 없이 정상 처리 204 : 정상 처리되었으나 서버에서 보내줄 데이터가 없음 300번대 : 다를 URL 처리 301 : 요청된 페이지가 새 URL로 변경되었음 304 : 이미 기존의 데이터와 변경된 것이 없음 400번대 : 서버에서 인식할 수 없음 400 : 전송된 Request에 문제가 있어서 서버가 인식할 수 없음 403 : 서버에서 허락되지 않음 404 : URL에 해당하는 자원이 없음 406 : 전송 방식이 허락되지 않음(Rest에서 자주 발생) 500번대 : 서버 내부의 문제 500 : 서버에서 처리 시 문제가 발생 502 : 게이트웨이나 프록시 상태의 문제(과부하..

    RestController import 할때 오류가 발생하는 경우.

    RestController 사용을 위해 org.springframework.web.bind.annotation.RestController 를 import할때 에러가 발생할 때가 있다. 그 경우에는 다음과 같이 maven의 webmvc 버전을 맞쳐 주어야 한다. org.springframeworkspring-webmvc4.1.6.RELEASE

    UriComponents 클래스

    UriComponents 클래스 UriComponents클래스는 Path나 query에 해당하는 문자열들을 추가해서 원하는 URI를 생성할 때 사용한다. UriComponents uricomponets = UriComponentsBuilder.newInstance().path("/board/read").queryParam("bno",12).queryParam("perPageNum", 20).build(); logger.info(uricomponets.toString()); 다음과 같이 지정하게 되면, INFO : com.wedul.spring.UriComponentsTest - /board/read?bno=12&perPageNum=20 다음과 같이 설정되어 출력된다.

    Mybatis의 동적 SQL

    Mybatis의 동적 SQL Mybatis가 가지는 표현식은 다음과 같다. IfChoose(when, otherwise)Trim(where, set)Foreach 기능 사용 예 설명 if AND title like #{title} 코드로 작성할 때의 if 구문에 대한 처리 -> 참 거짓을 구별해서 사용할 때 처리한다. Choose, When, otherwise AND title like #{title"" AND author_name like #{author.name} AND featured = 1 switch와 같은 상황에 대한 처리 Trim, Where,set … 로직을 처리하면서 필요한 구문을 변경 foreach

    longpolling 방식 소개 및 comet 방식과의 차이점 설명

    Comet 기존의 지속적인 갱신을 위해서는 Polling이라고 불리는 일정 간격으로 서버에 요청을 보내서 바뀐 내용을 조회하는 방식이였지만 이 방식을 리얼타임 수준으로 갱신하려면 간격을 줄여야 해서 불편하였다. 반면Ajax Push라고도 불리는 Comet은 Long Polling 과 Streaming 방식 두 가지를 제공한다.1) Long Polling클라이언트가 요청을 보내면 서버에서 이벤트가 발생할 때까지 응답을 하지 않고 가지고 있다가 이벤트가 발생하면 응답을 하고 다시 클라이언트에서 요청이오면 응답을 하는 구조로 되어있다.2) Streaming요청을 최초의 한번 보내면 Chunk데이터를 통해서 이벤트가 있을 때마다 계속 클라이언트에 데이터를 보내준다.

    서블릿 개념 설명 및 주요 메서드 소개

    서블릿(Servlet)은 자바 플랫폼에서 컴포턴트를 기반으로 한 웹 애플리케이션을 개발할 때 사용하는 핵심 기술이다. 무엇보다 서블릿이 중요한 이유는 JSP가 바로 서블릿을 기반으로 한 기술이기 때문이다. JSP가 등장한 가장 큰 이유는 서블릿이 가진 HTML 표현상의 문제를 해결 하기 위함이었다.- 서블릿은 프로그램 내에서 HTML을 처리하기 때문에 간단한 태그를 변경할때 조찿 컴파일해야하는 문제가 있다.- 그러나 JSP와 서블릿은 서로간의 상호 보완적인 관계이다. 서블릿의 장점 - 스레드를 기반으로 하므로 웹 애플리케이션 운영에 효율적이다.- 자바를 기반으로하는 자바 API를 모두 사용이 가능하다.- 자바는 바이트 코드로 구성된 가상모신으로 돌리기 때문에 운영체제나 하드웨어에 영향을 받지 않고 한번 ..

    Get과 Post 방식의 차이점 설명

    GET 방식 vs port 방식 Get- 서버에 있는 정보를 가지고 오기위해 설계된 방법- 서버로 전달할 수 있는 크기는 최대 240 Byte- 쿼리 스트링 환경변수를 통해서 서버의 전달되는데 형식은 다음과 같다.http:// www.xxx.xx.xx/login?id=hj&name=hong ? 이후의 값들은 서버에서 Query_string을 통해 전달된다.URL 노출이 되면 보안문제 발생우려 POST 방식- 서버로 정보를 올리기 위해 설계된 방법- 선버의 전달할 수 있는 데이터 크기가 제한이 없다.- URL에는 파라미터가 표시되지 않는다. 출저 : 자바 웹 프로그래밍 - 한빛 미디어

    자바 빈즈 개념 설명(Java Beans)

    java beans(자바 빈즈) 빈즈는 특정한 일을독립적으로 수행하는 컴포넌트를 의미한다.빈즈또한 자바 클래스이기 때문에 JSP 파일 스크립트릿 부분에서 인스턴스를 만들어 사용할 수 있다. 그러나 일반 클래스와 다를바없이 사용할수도 있지만 JSP 빈즈만의 특징적으로 사용할 수 있다.일반적으로 빈즈를 사용하는 경우, 사용자 입력을 처리하기 위한 HTML이나 JSP가 있어야 폼의 액션에 연결된 JSP 파일이 있어야 한다. 또한 폼을 처리하는 JSP 파일에서 참조할 빈즈 클래스가 필요하다. 1. form html(form, jsp, DB컬럼네임이 같아야한다.)ㄷ 2. a.jsp 3. JSP BEans class(my.MemberBean)publc static setUsername(String username)..

반응형