본문 바로가기

전체 글

(730)
[기술 지식] MSA 구조가 뭐임? MSA 란 무엇일까? MicroService Architecture 의 줄임말이다. 쉽게 말하면, 정확한 정의는 없다, 마이크로서비스란 작고 독립적으로 배포가능한 각각의 기능을 수행하는 서비스로, 구성된 프레임 워크라고 할수 있다. 독립적으로 배포가 가능하고, 각각의 기능을 수행하는 서비스로 이루어진 프레임워크이다. 기존의 프레임워크를 살펴보자, 해당 프레임워크는, 웹의 경우 War 파일로 빌드되어 was에 배포된다. 주로 소규모 프로젝트에서 사용이 된다. 기존의 프로젝트에서는 이런 프로젝트들은 제약이 많다. 1. 부분 장애가 전체 서비스 장애로 확대될수 있다. 예를 들어서, 어떤 개발자가 메인 페이지의 특정 부분을 개발했다고 가정하자. 실수로 이 개발자는 NPE을 발생시켰고, 이는 메인페이지 전체 페이..
JAVA stream _ 심화 Java Stream 심화 공부를 해보자, 1.list.parallelStream 의 사용 List에 초기값이 있다고 가정하면, 해당 Stream에 List를 저렇게 병렬로, 즉 각각의 쓰레드 별로, 생성할수 있다.(Stream 객체를) 저렇게 보면, 무슨 차이지? 싶은데, 여러개 혹은 많은 량의 데이터를 생성할떄 해당 쓰레드 별로의 생성은 아주 효과적이다. 2. Unboxing, boxing의 간편을 위해서, Long,double,int에 대한 기본 Stream을 제공한다. 박싱, 언박싱이란 무엇인가? 자바의 자료형은 기본형과 참조형이 있다. Integer과 같은건 기본형이고, int와 같은건 참조형이다. 참조형은 레퍼런스타입이고, 인터페이스와 같은 타입으로, 다양하고 활용가능하게끔 하기위해 사용되는 ..
프로그래머스 [기능개발] 풀이 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..
DTO, DAO, VO 예제 및 예시 비슷하지만, 다른 개념, DTO, DAO,VO의 예시를 공부해보자 1. DTO 란? DTO, 계층 간 데이터 교환을 위한 객체는 DTO이다. 즉 데이터베이스에서 값을 얻어, service, controller 단으로 데이터를 넘길때 필요한 값이다. 로직을 가지고 있지않고, 순수 getter,setter를 가지고 있다. 2. DAO 란? Service에서, Database를 접근하기 위해, 사용되는 객체이다. JPA에서 사용은 repository이고, 실제 DB와 접근 하는 객체의 역할을 한다. 쉽게 말해서 DB에 접속해서, 데이터의 CRUD작업을 시행하는 클래스이다. 3. VO - DTO와 동일한 개념이지만, VO는 값이 변경되지 않는 불변의상태를 의미한다. - readOnly이다. ValueObject
브라우저에서 부터 서버 응답까지의 흐름 웹 백앤드 개발자가 알아두어야 할, 네트워크 방식에 대해서 알아보자 스프링에서 사용자의 요청에 따른 응답처리는 framework에서의 내부동작이지만, 네트워크 단계에서 사용자의 요청, 응답단계에 대해서 알아보자 1. 사용자가 브라우저에서 url을 입력한다. 2. 브라우저가 해당 url을 분석한다. URL의 구조는 해당 과 같다. 2-1. schem : http, https 와 같이 요청 주체에 따라서 다르게간다. 크게는 http, https (보안 차이), ftp 등이 있다. 2-2. host : 주체 2-3. port : host와 통신하는 쪽의 포트이다. 이건 사전에 약속이 되어있지만, 실제 사용자들은 이렇게 포트까지 치고 들어갈 필요는 거의없다. host쪽에서 자동설정으로 해놓기 떄문에, 대부분 8..
트리, 이진 트리 Binary Search tree 트리와 이진 트리 , Binary Search Tree 구조와, 방식에 대해서 이해해보자 - 트리 일반적으로 계층 구조의 자료구조를 표현할때 사용하는 구조이다. 자식-부모 간의 관계로 되어있고, 싸이클 구조를 가지지 않는다. 되게 간단하다. 단순 트리 구조는, 동료 노드와, 부모 자식 노드 그리고 최상단의 루트 노드가 존재한다는 것이 전부이다. 이진트리 - 자신의 하위 노드의 차수가 최대 2인, 트리 구조를 의미한다. 부모-자식간의 노드 구조는 동일하고, 자식을 최대 2개가진다고 이해하면 된다. 이진트리는 종류가 조금 씩 있는데, 1. 완전 이진 트리 2. 전 이진 트리 3. 포화 이진 트리 이렇게 3가지의 트리가 존재한다. 1. 완전 이진 트리 완전 이진 트리는 , 왼쪽에서 오른쪽으로 데이터가 채워진다..
JAVA stream 사용 예제_1 java 8에서 새로 나온 부분이 있다. 바로 stream, optional이다. 어떤게 좋은지 바로 테스트 해보자 우선 Stream이란, 컬렉션의 요소를 하나씩 처리할수있는 Iteator와 비슷한 기능을 하고, 해당 기능을 수행함으로써, 코드가 간결해지고, 병렬처리를 가능하도록 해준다. ArrayList를 사용해서, 해당과 같이 값을 하나씩 체크를 했다. 이걸 Stream으로 한다면? 누가봐도 간결한 코드를 가진다. int 배열, String 배열을 바꾸는건 어떨까? 주로 배열을 바꿀테니까.. 이렇게 String 배열과 int 배열에 대한 변환을 주면된다. 물론 Stream의 형식이 제네릭 타입이기 때문에, 요런식으로도 가능하다. 다음에는, Stream의 플랫맵이나 기타등등 다양한 사용함수들을 알아보고..
[iOS 개발] 모든 프로젝트의 기본, hello world 출력 aos 개발 가닥이 있어서 그런가, 자꾸 aos 와 비슷한 곳을 찾게 되는 것같다... 무튼간에 일단 개발 시작. ios 에서 hello world를 출력해보자 일단 안드처럼 xml과 연결이 되어있다. 해당 연결은 스토리보드라고하는데, 상단에 저기 viewController.swift파일과 스토리 보드상의 View Controller의 이름이 같아야한다. 이게 스토리보드와 swift파일을 이어주는 역할을 한다. 스토리 보드에서, 컴포넌트를 추가할때는 상단의 + 버튼을 누르면 목록이 나온다. 간단히 헬로월드출력이니, 텍스트만 골라서 드래그 앤 드랍으로 스토리 보드에 떨궈준다. 컴포넌트를 누르고, 텍스트만 hello world로 바꿔주면, 해당 내용이 바뀐다. 밑에 속성들 보니까, 뭐 여러가지 디자인적 요소..