728x90

Backend 18

[Java] Java Reflection 이란?? (동적 로딩과 개념, 사용법)

오늘 포스팅에서 알아볼 내용은 Java Reflection입니다. 우선 Java는 Compile 언어입니다. Java에서는 동적으로 객체를 생성하는 방식이 없었기에 Reflection 방식으로 객체를 동적으로 생성할 수 있게 되었습니다. Java Reflection??( Reflection : 반사, 굴절, 투명) Java Reflection은 다음과 같은 정보를 분석하거나 가져올 수 있습니다. Class Constructor Method Field 이러한 정보들을 가져와 객체를 생성하거나 메서드를 호출할 때 변수의 값을 변경할 수 있습니다. Java Reflection API의 기능으로는 객체의 타입을 모르고 객체의 메모리 주소 값만 알고 있는 상태에서 객체의 메서드, 타입, 변수에 접근 가능하게 해주..

Backend/Java 2022.02.14

[Socket] Stomp를 알아보자!

STOMP란?? STOMP는 ( Simple / Stream Text Oriented Messaging Protocol )의 약자입니다. 말 그대로 간단한 문자열 기반의 메세지 프로토콜 입니다. 프로토콜이란 메세지를 서로 주고 받을때 정의된 규칙 체계를 의미하며 STOMP는 즉 텍스트 송신, 수신을 위한 미리 정의된 어떠한 규칙입니다. STOMP가 정의한 규칙을 통해 다양한 언어, 플랫폼 간에 메세지를 주고 받을 수 있습니다. 물론 AMQP와 MQTT와 같은 메세지 전송 프로토콜이 존재하지만 STOMP는 Binary 기반이 아닌 텍스트 기반의 프로토콜이라는 점이 특징입니다. ( 개발자가 읽기 쉽고 사용하기 좋습니다. ) 이러한 특징들이 마치 HTTP와 유사한 부분이 있고, 그렇기에 다양한 언어, 호스트,..

Backend/Socket 2022.02.10

[Socket] Socket.IO를 알아보자!

이번 포스팅으로 알아볼 내용은 실시간 채팅과 실시간 화상채팅 그리고 음성통화로 유명한 Socket.io에 대해 알아보겠습니다. Socket.io socket.io는 실시간 Web App을 위한 JavaScript 라이브러리입니다. ( Node.js에서도 실행할 수 있습니다. ) JavaScript뿐만 아닌 자바, C++, Swift, Dart, Python등의 다양한 언어로 구현된 클라이언트도 존재합니다. 웹 클라이언트와 서버간의 실시간 양방향 통신이 가능합니다. socket.io는 실시간 분석, 바이너리 스트리밍, 인스턴스 메시지와 문서 협업을 구현하는 기능을 제공합니다. 또한 socket.io는 WebSocket의 구현체가 아닙니다. 즉, socket.io은 WebSocket을 기본 라이브러리로 사용..

Backend/Socket 2022.02.10

[Golang] Channel 과 비동기 메커니즘의 GoRoutine을 알아보자!

이번 포스팅에서 알아볼 내용으로는 GoRoutine과 Channel에 대해 간단히 알아보겠습니다. GoRoutine이란?? GoRoutine은 Go Runtime이 관리하는 논리적 혹은 가상적 Thread입니다. Go에서 go 키워드를 사용하여 함수를 호출하면, 런타임 동안 새로운 goroutine을 실행합니다. goroutine은 비동기적으로( asynchronously ) 함수를 실행하며 여러 코드를 동시에( Concurrently ) 실행하는 기능입니다. 또한, Goroutine은 함수 및 메소드를 다른 함수 및 메소드와 동시에( 병렬형 ) 사용 가능하게 하는 기능입니다. GoRoutine은 OS Thread에 비해 엄청난 경량 Thread입니다. ( OS Thread : 1MB, GoRoutine..

Backend/GoLang 2022.02.05

[Golang] Go만의 구조체(struct)와 메소드(method) 사용법

오늘 포스팅할 주제는 Go의 특징 중 구조체( struct ) 메소드( method ) 타입( type ) 에 대해 알아보겠습니다. 구조체 ( struct )란? Go는 Go만의 방식으로 OOP를 지원합니다. 사용하는 방법으로는 구조체와 메소드가 있습니다. 4가지 방식으로 구조체의 인스턴스를 생성할 수 있습니다. 예시코드 package main import "fmt" // 구조체( struct ) 정의 type Person struct { name string age int } // 생성자 정의 func NewPerson(name string, age int) *Person { return &Person{name, age} } func main() { // 인스턴스 생성 var person1 = Pers..

Backend/GoLang 2022.02.05

GoLang만의 문법, 변수 표현식( Variable Expression)을 알아보자!

이번 포스팅에서 다뤄볼 내용은 GoLang의 문법 변수 표현식 Multi Return Naked Function defer 에 대해 알아보겠습니다. GoLang은 간결하고 명확한 문법을 추구합니다. Go의 문법??? 우선 함수의 접근제한자입니다. Java의 접근 제한자( public, private )를 함수의 첫 글자의 대소문자로 구분합니다. Go는 JavaScript처럼 Export Default를 하지 않습니다. import에 선언만 하면 바로 사용할 수 있습니다. 먼저 example.go를 작성합니다. example.go package example import "fmt" func sayBye(){ fmt.PrintLn("Bye~") } func SayHello(){ fmt.PrintLn("Hel..

Backend/GoLang 2022.01.31

WSL( Ubuntu 20.04 )에 Go 설치하기

이번 포스팅에서 알아볼 내용은 Wibdow 환경에 Go 설치하기 WSL( Windows Subsystem for Linux )에 Go 설치하기 main.go를 생성하고 Hello world 출력하기 를 해보겠습니다. 우선 Window Go 설치입니다. https://go.dev/dl/ 공식 Go 홈페이지에서 Window 버전 Go를 다운로드합니다. 저는 이미 설치를 했기 때문에 Setup 도중에 Go가 설치될 주소를 반드시 C:\Program Files\Go 또는 C:\Program Files (x86)\Go의 경로에 설치하여야 합니다. 설치가 완료되었으면 환경변수를 설치된 경로로 설정해야 합니다. ( 저는 기본 경로가 C:\Go로 되어있어 변경하였습니다. ) 올바른 경로에 설치와 GOPATH 환경변수를..

Backend/GoLang 2022.01.29

Google Go 언어에 대해 알아보자! ( GoLang )

이번 포스트에서는 Google에서 발표한 프로그래밍 언어 GO에 대해 알아보겠습니다. 먼저 Go의 탄생입니다. 2009년 11월 Google에서 처음 발표하여, 2012년 3월에 정식으로 발표된 프로그래밍 언어입니다. Go는 세명의 개발자가 디자인한 프로그래밍 언어입니다. 로버트 그리스머( Robert Griesemer ) 케네스 레인 톰프슨( Kenneth Lane Thompson ) - Go, 정규표현식, UTF-8 인코딩 등 롭 파이크( Rob Pike ) 이후에 두 명의 개발자가 보강되었습니다. 이안 테일러( Ian Taylor ) 러스 콕스( Russ Cox ) 이름이 Go인 프로그래밍 언어인 만큼, 검색에 불편한 경우가 많아 보통 Golang으로 검색하거나 발음합니다. 2009년, 2012년에..

Backend/GoLang 2022.01.28

Gradle과 Maven의 차이를 알아보자!

이번 포스팅에서 다룰 주제는 Spring Project에서 사용하는 필수적인 관리 도구인 Gradle과 Maven에 대해 알아보며 Gradle과 Maven이 어떤 부분에서 차이점이 있는지 Gradle의 장점으로 인한 CI / CD 환경에 대해 알아보겠습니다. Maven과 Gradle 모두 빌드 관리 도구입니다. 빌드 관리 도구란??? 프로젝트에서 작성한 소스 코드와 프로젝트 내에 필요한 Xml, Properties, jar 등의 파일을 JVM 혹은 WAS가 인식할 수 있도록 도와주는 도구입니다. 프로젝트의 생성, 테스트 빌드 혹은 배포 등의 작업을 위한 전용 도구입니다. 애플리케이션을 개발하며 필요한 라이브러리들을 다운로드하고 사용할 때 번거롭게 일일이 다운로드할 필요 없이 빌드 도구 설정에 필요한 라이..

Backend/Spring 2022.01.26

Java Servlet Class를 알아보자!

오늘 알아볼 포스팅 내용으로는 Java Servlet에 대해 알아보겠습니다. Java Servlet이란? Java를 사용하여 Web Page를 동적으로 사용하는 Server Side Program 혹은 그에 맞는 사양을 말하며 흔하게 Servlet( 서블릿 )이라고 불립니다. Java Servlet은 Web Server의 성능을 향상하기 위해 사용되는 Java Class의 종류 중 하나입니다. Servlet은 JSP와 비슷하지만 JSP( Java Server Pages )는 HTML 문서 안에 Java 코드를 포함하고 있는 반면에, Servlet은 Java 코드 안에 HTML을 포함하는 큰 차이점이 있습니다. Servlet은 Java를 사용하여 웹을 만들기 위해 필요한 기술입니다. 즉, 사용자의 요청에 ..

Backend/Java 2022.01.23
728x90