본문 바로가기

분류 전체보기

(93)
Spring Package 구조와 역할 스프링에서 사용하는 패키지(package)단위의 구분. 패키지 구조 설계는 프로젝트마다 그리고 개발자마다 다를 것이며, 사용되는 프레임워크나 서비스에 맞게 설계되는 것이 일반적이다. 정해진 답은 없다. = controller 클라이언트의 요청이 진입하는 포인트. 요청에 따라 어떤 처리(수행할 비즈니스로직)를 할지 결정해주며 처리된 로직 및 데이터를 View 혹은 정의내린 포맷에 맞게 응답을 보내주는 중간 제어자이다. 우리가 흔히 알고있는 MVC패턴의 그 Controller가 맞다. 스프링에서는 @Controller 어노테이션을 선언하여 스프링 Bean에 등록한다. = service 비즈니스 로직을 처리한다. controller에서 받은 요청을 처리할 때, 필요한 데이터를 dao객체(mapper, repo..
Java - Jackson = Jackson이란? : Json, XML, YAML, CSV 등 다양한 확장자를 가지고 있는 데이터의 처리를 지원하는 라이브러리. 스트림 방식이므로 속도가 빠르고 유연하며, 다양한 third party 데이터 타입을 지원하며, annotation 방식으로 메타 데이터를 기술할 수 있다. 스프링부트에서는.. Json -> Object, Object -> Json 변환작업을 할 수 있도록 설정이 되어있는데 # Gradle 기준 implementation 'org.springframework.boot:spring-boot-starter-web' spring-boot-starter-web에 jackson 라이브러리가 포함되어있다. @RestController Annotation을 사용하는 경우, POJO C..
Java - Enum enum 이란? : enum의 정의는.. Enumerated Type (열거형 타입)을 줄인 용어이며, 상수 값을 대표하는 이름의 멤버들로 집합을 이루는 열거 자료형 타입이다. - 자바 1.5버전부터 새롭게 추가된 개념으로, 열거형 상수라고 불린다. - 자바에서는 상수값을 정의할 때 final static String ~ 와 같은 방식으로 정의했는데, enum을 사용해서 대체가 가능하다. - Class 처럼 정의하는 상수, 서로 관련 있는 상수들끼리 묶을 수 있다. 그럼 enum은 언제 사용할까? 상수값 중에서 비슷한 종류(서로 관련 있는)의 상수를 묶어놓기 위해 사용 // 로또 프로그램에서 1등부터 5등까지를 의미하는 등수와 각 등수가 만들어 지는 조건, 그리고 각 등수에 해당하는 상금을 묶어낼 필요가..
Java - 로컬환경 자바프로젝트 세팅 (with Docker) ※ mac os 기준이며, IDE는 Intellij 기준으로 작성했습니다. 회사에서 로컬환경 설정하면서, 정리했던 내용입니다. 1] 자바 설치 # ------ bash를 통한 brew 설치 ------ $ bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" # ------ mac 계정 password 입력후 / Enter ------ Password: ...... ...... ==> Installation successful! ==> Homebrew has enabled anonymous aggregate formulae and cask analytics. Read the analytics ..
Jenkins를 이용한 서버 Spring Boot 배포 - pipeline ubuntu서버 1대에 Spring Boot 프로젝트 구동 배포 pipeline 구축에 대해서 소개한다. [참고사항] - 개발환경으로는 사용이 가능할 수 있으나, 실제 운영환경에서는 적합하지 않습니다. - Load Balencer가 적용되지 않으며, 접근할 수 있는 DNS 및 공인 IP가 등록되어있어야 합니다. - Blue/Green (무중단)배포가 아닌, 배포진행중에는, 프로젝트가 중단되어버리는 방법입니다. 1] General 2] 소스 코드 관리 3] Build (!) 정렬 순서에 맞게 동작하므로, 순서에 유의할 것. - Execute shell : 기존에 떠있는 java springboot 프로젝트를 제거 $ kill -9 $(ps -ef | grep 'ep-java-gradle-exam' | gr..
Docker - Jenkins 설치 및 배포 (Spring boot 프로젝트) 회사에서 연습하면서 정리한 내용입니다. 배포 환경을 구성하기전에 필요한 것들 1] docker 설치 2] jdk 설치 (azul/zulu-openjdk:8 image pull) 3] 프로젝트 및 VCS 생성 위의 3가지가 있어야 Jenkins를 통한 자동배포환경 세팅이 가능하다. 참고: https://xggames.tistory.com/22 로컬환경에서 Jenkins를 통한 자바 프로젝트 자동 빌드 & 배포를 설정하여 사용하는 방법에 대해서 소개 1] Jenkins docker image 다운로드 $ docker pull jenkins/jenkins:lts ...... ...... ...... (완료후) $ docker images # REPOSITORY TAG IMAGE ID CREATED SIZE #..
Hadoop - HDFS 명령어 = HDFS 명령어 구조 # HDFS 명령어 구조 $ hdfs dfs -cmd # cmd: 지정한 파일 명령어 # : 각 명령에 따른 인자들 = HDFS 아키텍처 및 커맨드 환경 = 주요 명령어 : 전반적으로, linux 명령어와 유사함 hdfs dfs -ls / : HDFS의 루트 디렉토리 안에 있는 파일 나열하기 (리스트) hdfs dfs -mkdir /test : /test 디렉토리 만들기 hdfs dfs -put test /test : 로컬 디렉토리에 있는 파일(첫번째 arg)을 HDFS(두번쨰 arg)로 복사 hdfs dfs -cat /test/test : HDFS 파일 내용 확인 hdfs dfs -get /test/test testlocal : HDFS로 복사했던 test 파일(첫번째 arg)..
Hadoop - MapReduce 프로그래밍 MapReduce 프로그래밍은 개발자가 직접 해야한다. =자바(Java) MapReduce 프로그램을 가장 완벽하게 작성 가능 객체 지향 언어 많은 개발 경험 필요 가장 많은 코드량 발생 = 하이브(Hive) SQL로 하둡 데이터를 분석하려는 SNS 엔지니어들의 요구로 SNS 내부에서 개발되었다가 오픈 소스로 공개됨 데이터 요약, 쿼리 및 분석을 제공하기 위해 하둡 위에 구축된 데이터웨어 하우스 소프트웨어 프로젝트 = 피그 (Pig) 하둡의 복잡한 추출, 변환, 적재 작업을 손쉽게 함 다수의 중간 결과물이 필요한 복잡한 분석 쿼리에도 적합 대량의 조인 연산이나 중간 테이블이 필요한 경우에 주로 사용 관계형 기본 함수 및 사용자 정의 함수로 기능 확장 가능 = MapReduce Java 프로그래밍 예제 :..
Hadoop - ubuntu에 하둡 설치하기 1] ubuntu에 open-jdk 설치하기 hadoop 2.x 대 사용시, jdk 7version 설치 필수! (8은 hadoop 3.0 이상부터 지원) $ sudo apt update # 상황에따라 다른 open jdk를 사용할 수도 있음 (ex) julu-openjdk-8 등..) $ sudo apt install openjdk-8-jdk -y # Java 설치확인 $ java -version $ javac -version 2] 계정 생성 (선택) => 클러스터를 효과적으로 관리할 수도 있고, 보안에도 좋기에 하둡만을 위한 계정을 생성. (상황에따라 다른 계정도 사용) # localhost랑 ssh통신을 위한 openssh-server openssh-client 설치 # window os에서 ubu..
Hadoop - 하둡이란?? 빅데이터의 정의 디지털 환경에서 발생하는 대량의 모든 데이터 기존 데이터베이스 관리도구의 데이터 수집, 저장, 관리, 분석 역량을 넘어서는 비정형 데이터 용량은 수십 TB에서부터 수십 PB까지도 존재할 수 있다. 즉, 기존 데이터베이스 시스템에서 처리할 수 없는 방대한 양의 데이터이다. => 조직은 내/외부에 존재하는 다양한 형태의 데이터를 수집하고 처리하고 분석해서 데이터에서 의미있는 가치를 추출해 조직에 전략적 의사결정에 활용하고, 비즈니스에 적용하는 행위를 한다. = 빅데이터의 처리단계 : 수집 → 정제 → 적재 → 분석 → 시각화 하둡이란? 간단한 프로그래밍 모델을 사용하여 여러 대의 컴퓨터 클러스터에서 대규모 대용량 데이터를 분산 처리할 수 있는 빅데이터의 처리가 목표인 자바 기반의 오픈 소스 ..