반응형

분류 전체보기 271

Docker 정리(1)

도커를 사용하는 이유 java, mysql, c# 등 환경 세팅 및 버전을 세팅한 것을 도커 이미지에 저장한다. 이 이미지를 가져와 다른 사람이 사용하면 나와 같은 환경 세팅 및 버전을 사용할 수가 있다. 도커란? 컨테이너 기반의 오픈소스 가상화 플랫폼 이다. 도커 위에서 동작하는 것이 컨테이너이고, 컨테이너 안에서 동작하는 각각의 애플리케이션들은 리눅스 운영체제에서 동작한다. 컨테이너란? 컨테이너 안에 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순화해준다. AWS, Azure, Google cloud 등 어디에서든 실행 가능하게 해 준다. 컨테이너는 소프트웨어를 환경으로부터 격리시키고 개발과 스테이징의 차이에도 불구하고 균일하게 작동하도록..

컨테이너/도커 2022.05.14

java8과 java11 차이점

자바8 인터페이스에서 디폴트 메소드와 정적 메소드를 포함 디폴트 메소드는 하위 구현 클래스에서 재정의가 가능하지만, 정적 메소드는 구현 클래스에서 재정의할 수 없다. interface TestInterface { default String logic() { return "test"; } static String logic2() { return "test2"; } } 람다 표현식 람다식은 메소드를 하나의 식으로 표현한 것을 말한다. 그리고 람다식은 함수의 이름이 없기 때문에 익명 함수라고 부르며, 메소드의 매개 변수로 전달되거나 메소드의 결과로 반환될 수 있는 특징이 있어서 함수를 변수로 다룰 수 있다는 장점이 있다. 람다식은 메소드를 식으로 나타낸 것이긴 하지만, 엄밀히 말하면 이 메소드를 가진 객체를 ..

Language/Java 2022.05.08

var let const

var(function - scoped) 재선언과 재할당이 가능하며 전역 변수이다. 이는 유연한 변수 선언으로 간단한 테스트에는 편리할 수 있겠으나, 코드량이 많아진다면 어디에서 어떻게 사용될지도 파악하기 힘들뿐더러 값이 바뀔 우려가 있다. // var는 function-scope이기 때문에 for문이 끝난다음에 i를 호출하면 값이 출력이 잘 된다. // 이건 var가 hoisting이 되었기 때문이다. for(var j=0; j

Language/JS 2022.05.07

callback과 Promise의 차이점

callback과 promise를 차이점을 알아보기전에 동기와 비동기에 대해서 먼저 알고 시작해야 한다. JS는 기본적으로 동기 처리이기 때문에 중간에 대량의 데이터를 응답 받거나 대량의 이미지 업로드를 실행한다면 이 실행이 다 끝날때까지 뒤의 실행들이 blocking된다. 그래서 실행이 오래 걸리는 실행문들은 비동기로 처리하여 전송을 보내놓고 응답을 받으면 실행되게 된다. 동기란? 동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 그결과가 동시에 일어난다는 약속인데, 바로 요청을 하면 시간이 얼마나 걸리든 요청한 자리에서 결과가 주어져야 한다. 비동기란? 비동기는 동시에 일어나지 않는다를 의미한다. 요청과 결과가 동시에 일어나지 않을거라는 약속이다. 동기와 비동기의 단점과 장점 동기방식은 설계가 매우..

Language/JS 2022.05.07

클래스 로더 시스템

JVM 구조에서도 말했듯이 클래스 로더 시스템은 3개로 나누어서 볼 수 있다고 말했다. 거기에 대한 내용을 좀 더 자세하게 정리해보자. 로딩(loading) 클래스 로더가. class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고 "메서드" 영역에 저장 이때 메소드 영역에 저장하는 데이터 FQCN, 클래스, 인터페이스, 이늄, 메서드와 변수가 있다 로딩이 끝나면 해당 클래스 타입의 Class 객체를 생성하여 "힙"영역에 저장된다. 링크(Linking) 레퍼런스를 연결하는 과정이다. 링크에서도 3가지로 나눌 수가 있다. 검증 : 바이트코드 검증 기는 생성된 자바 바이트코드가 적절한지 아닌지에 대해서 검증하며 검증이 실패할 경우 검증 오류를 보낸다. 준비 : 모든 정적 변수의 메모리가 할당되며..

Language/Java 2022.05.05

JVM 구조

JVM은 자바 가상 머신(Java Virtual Machine)의 약자이다. JVM은 자바 소스코드로부터 만들어지는 자바 바이너리 파일(. class)을 실행할 수 있다. 또한 JVM은 플랫폼에 의존적이다. 즉 리눅스의 JVM과 윈도우즈의 JVM은 다르다. 단, 컴파일된 바이너리 코드는 어떤 JVM에서도 동작시킬 수 있다. 클래스 로더 시스템 이란? class에서 바이트코드를 읽고 메모리에 적절하게 배치하는 것이 클래스 로더 시스템가 하는 일이다. 여기서 클래스 로더 시스템이 크게 3가지로 나누어 볼 수가 있는데 로딩, 링크, 초기화 이다. 로딩(loading) : class에서 바이트코드를 읽어오는 과정이다. 링크(Linking) : 레퍼런스를 연결하는 과정이다. 링크에서도 3가지로 나눌 수가 있다. ..

Language/Java 2022.05.05

vm과 도커의 차이

vm(virtual machine)란? 가상 머신으로 윈도우, 리눅스, 맥 os 등 새로운 os를 설치하여 새로운 가상 환경을 만든다 vm은 하나의 컴퓨터 위에, 자원을 나누어 만들어지기 때문에, 자원이 많이 필요하고, 하나의 PC에서 독립적인 IP와 독립적인 사용자, 독립적인 공간을 할당받아 독립적인 서비스를 제공할 수 있는 기능이다. 이런 가상화 기능으로 Linux , Redhat , Mac 등의 여러 가상 OS환경을 한대의 컴퓨터에 설치해 사용할 수 있습니다, 사용 이유 1. 하나의 컴퓨터로 서로 다른 두 개 이상의 운영체제를 실행하고자 할 때 2. 하나의 컴퓨터 자원을 여러 사용자에게 나누어 주는 상황에서 상호 간섭을 없애고 싶을 때 예를 들어, 클라우드 등에서 사용하는 가상 머신이 있다. 3. ..

카테고리 없음 2022.04.27

네이버 페이 (Naver Pay) 기능구현

이번에 간편결제 기능인 네이버 페이 구현을 진행했으며 작업이 모두 끝나서 이를 정리해두려 한다. 네이버페이 결제 연동 개발 네이버페이 간편결제 연동 개발은 크게 3가지로 이루어진다. 결제창 호출 -> 결제 승인 -> 결제 완료 NaverPay.html 네이버 페이는 javaScriptSDK를 제공 하고 있다. SDK를 이용하여 결제창을 쉽게 띄울 수 있다. NaverPay.html 설명 NaverPay javascript object 를 통해 프로그래밍할 수 있도록 지원한다. var oPay = Naver.Pay.create(); Naver.Pay.create({sdk parameter object}) 네이버페이 객체를 생성한다. var oPay = Naver.Pay.create({ "mode" : "d..

Language/Java 2022.04.24

카카오 페이( Kakao pay) 기능구현

이번에 간편결제 기능인 카카오 페이 구현을 진행했으며 작업이 모두 끝나서 이를 정리해두려 한다. 준비하기 관리자 모드 > 환경설정 > 전자결제 설정 > 국내 전자 결제에서 PG를 신청하면서 동시에 카카오페이를 신청할 수 있다. 이미 PG사에 가입하신 분은 간편결제 항목에서 카카오페이 신청 버튼을 눌러 안내에 따라 진행하면 된다. 카카오 페이 API 에서는 아래 항목의 기능을 제공한다. 이 중에 이번에 필요한 건 단건결제 였다. 단건결제: 일회성으로 결제를 진행합니다. 정기결제: 최초 등록 후 주기적으로 결제를 진행합니다. 정기결제 비활성화: 등록된 정기결제 키(SID)를 비활성화 하여 정기결제를 중지합니다. 정기결제 상태 조회: 등록된 정기결제 키 (SID)를 조회해 정기결제 상태를 조회합니다. 주문 조..

Language/Java 2022.04.23
반응형