본문 바로가기
반응형

java9

프로모션을 대비한 대기열 시스템 구성하기 (Redis, WebSocket, Spring) 회사내 기술블로그에 작성했던 글인데.. 기술블로그 오픈에 대한 내용이 홀딩되면서 1년이 지난 시점에 재작성 해봣다. BackEnd 위주 구성에 대한 내용들이니 참고하길 바랍니다~! ✔개요 대기열 시스템의 탄생 배경 이번에 회사에서 새로운 상품을 오픈하기 위해 대대적인 마케팅?을 진행한다는 것을 전달받아 대기열 시스템을 설계, 개발을 진행했습니다. 왜? 우리는 대기열 시스템이 필요했을까? 현재 대고객 서비스를 위한 개발 및 운영하고 있으며, 상품에 대한 주요정보 등을 코어영역와의 통신을 통해 처리하고 있다. (우리는 고객을 상대하는 채널이다.) 우리가 도입하려는 대기열 시스템은 고객의 동접을 대응하지 못할때 FIFO(선입선출) 방식으로 순차적으로 트래픽을 처리하기 위한 방안입니다. 레거시 시스템의 경우에는.. 2022. 8. 10.
[Java] System.identityHashCode()와 hashCode() 차이 System.identityHashCode()와 hashCode() 두 메서드 모두 객체의 고유한 값을 리턴한다. System.identityHashCode() 객체의 고유한 hashcode를 리턴하는 메소드이다. hashCode() 모든 객체의 부모 클래스인 Object 클래스에 정의되어있다. void new연산자() { Member member = new Member("hello", "1"); Member member2 = new Member("world", "2"); Member member3 = new Member("hello", "1"); System.out.println(System.identityHashCode(member)); //646204091 System.out.println(Syst.. 2022. 1. 21.
[JAVA] 산술, 비트, 관계, 논리, 3항, 화살표 연산자, java14 switch 문 산술 연산자 산술 연산자는 우리가 일반적으로 말하는 사칙연산이다. 산술 연산자는 더하기 (+), 빼기 (-), 곱하기 (*), 나누기 (/), 나머지를 구하는 (%) 총 5개로 이루어져 있다. 산술 연산자는 boolean 타입을 제외한 모든 기본 타입에 사용할 수 있다. 기본적인 연산은 모두 알고 있을거다.. 산술 연산자의 특징은 피연산자들의 타입이 동일하지 않을때 아래와 같은 규칙으로 타입을 일치 시킨 후 연산을 수행한다. 피연산자들이 모두 정수 타입일때, int 타입(4byte) 보다 크기가 작을 경우 모두 int 타입으로 변환 후 연산을 수행한다. 피연산자들이 모두 정수 타입일때, log 타입이 있을 경우 모두 long 타입으로 변환후 연산을 수행한다. 피연산자 중 실수 타입이 있을때, 크기가 큰 .. 2022. 1. 6.
[JAVA] 데이터 타입, 리터럴이란 , 변수의 Scope(범위) LifeTime(수명) 자바의 데이터 타입 자바의 데이터 타입은 크게 기본 타입(Primitive type)과 참조 타입(Reference type)으로 구성된다. 기본 타입 (Primitive type) 정수 byte (1 byte) char (2 byte) short (2 byte) int (4 byte) long (8 byte) 실수 float (4 byte) double (8 byte) 논리 boolean (1 byte) 참조 타입 (Reference type) 배열 타입 열거 타입 클래스 인터페이스 데이터 타입에 대해 제대로 이해하고 있어야 메모리에 어떻게 적재되는냐도 생각 할 수있다. 기본타입 (Primitive type) Java의 기본 타입은 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입을 말한다. 메모.. 2022. 1. 3.
[JAVA] JVM의 구성요소 및 동작원리 JVM이란? Java Virtual Machine? JVM(Java Virtual Machine)은 몇가지 특징을 가지고 있다. 플랫폼(windows, Mac OS, Linux, etc)에 독립적이다. OS에 구애받지 않고 사용이 가능하다. 프로그램이 실행되는 도중에도 동적으로 OS로부터 메모리 할당받아 스스로 관리한다 (GC, Garbage Collection) 바이트 코드란 바이트 코드란 JVM이 이해할 수 있는 언어이다.Java는 OS에 독립적이기 때문에 JVM이 이해할 수 있는 언어로 제공해야하며, Java 컴파일러를 통해 바이트코드로 컴파일한다. JVM의 구성요소 및 동작 JVM의 구성요소는 Memory 관리, Class Loader, Execution Engine 등으로 구성되어 있다. JVM.. 2021. 12. 26.
[Java] String, StringBuilder, StringBuffer 차이, 사용하기. 알고쓰자! 시간적 여유가 있어. 정리를 다시 해볼까한다. 대부분의 개발자들은 String, StringBuffer, StringBuilder의 알고리즘적인 특징을 알아야 한다고 생각하며, 왜 쓰이는지에 대해서 써볼까한다. 연산속도는 String이 StringBuffer, StringBuilder 보다 느리고 메모리 관점으로 바라봐도 비효율적인 측면을 가지고있다. 즉, 단일 스레드 환경에서는 StringBuilder를 사용하고 멀티 스레드 환경에서는 StringBuffer가 적합하다. (Thread-safe) 하지만, 속도적인 측면에서는 비동기에 적합한 StringBuilder 가 적합하고 볼 수 있다. String이 StringBuffer, StringBuilder 보다 연산속도가 느린이유는 String 클래스는 .. 2021. 6. 25.
반응형