It 10

우당탕탕 AWS 학습기 - 클라우드 컴퓨터란?

학습의 필요성을 느끼고, AWS를 공부하기 시작했습니다. 유튜브 강의, AWS 공식 홈페이지의 기재되어 있는 정보를 스스로 판단하고 이해하니 잘못된 정보가 있을 수 있습니다. 언제든 오류사항에 대해서 댓글로 달아주시면, 수정하겠습니다! https://www.youtube.com/playlist?list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m 이 유튜브 강의가 진짜 좋습니다. 왜냐구요? 직접 들어보니 좋더라구요 AWS Amazon Web Services (AWS)는 아마존에서 제공하는 클라우드 컴퓨팅 플랫폼으로, 기업이나 개인이 IT 인프라를 구축하거나 관리하지 않고도 다양한 서비스를 활용할 수 있게 해주는 서비스입니다 클라우드 컴퓨팅이란? IT 리소스를 인터넷을 통해 온디맨드로 제..

AWS 2023.08.31

Stack

Stack이란? 자료 구조 중 하나인 Stack의 사전적 정의는 '쌓다', '더미'입니다. 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료 구조라고 할 수 있습니다. Stack의 가장 큰 특징은 나중에 들어간 것이 먼저 나오는 (Last In First Out)의 형태를 띈다는 것입니다. 이 방식을 가진 자료구조인 Stack을 활용하여 다양한 문제를 해결할 수 있습니다. 자바에서 Stack은 java.util.Stack을 import하면 바로 사용할 수 있습니다. Stack의 특징 1. 먼저 들어간 자료가 나중에 나옴 LIFO(Last In First Out) 구조 2. 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 함 3. 인터럽트처리, 수식의 계산, 서브루틴의 복..

자료구조 2023.06.26

[프로그래머스] 이진 변환 반복하기

https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 특정 문자열(2진수로 이루러진)이 주어지면, 1. 0을 제거한 후 2. 제거된 문자의 length를 확인 3. length 값을 다시 2진수로 변환 해당 과장을 반복하여, 반복된 횟수와 제거된 0의 갯수를 return 하는 문제입니다. public static int[] solution(String s) { int n = s.length() - s.replace("0", "").length(); ..

CodingTest 2023.04.28

[프로그래머스] 최솟값 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 개의 배열이 주어지고 두 배열을 곱하였을 때 나올 수 있는 최솟값을 구하는 문제입니다. 최솟값은 A의 가장 큰 값과 B의 가장 작은 값이 곱해졌을 때 구할 수 있습니다. (A의 가장 작은 값과 B의 가장 큰 값도 마찬가지로 매칭되어야 합니다.) Arrays.sort(A); Arrays.sort(B); 따라서 우선 두 개의 배열을 초기화해주었습니다. 그다음은 이제 가장 큰 값과 가장 작은 값이 ..

CodingTest 2023.04.28

WEB SOCKET

ws프로토콜을 이용하는 양방향 통신방식이다. ws프로토콜은 한번 연결되면 연결을 끊지 않고 계속 유지" 한 상태로 "클라이언트와 서버가 서로 데이터를 주고 받는다 따라서 서버 하나에 여러 클라이언트가 붙어서 지속적으로 데이터를 주고 받아야하는 서비스에 유용하다. HTTP 통신의 경우, 클라이언트가 요청을 하고 서버가 응답을 하면 바로 연결이 끊어진다. ws 모듈 ws 모듈이란? : 간단한 웹소켓 통신을 구현하기 위한 모듈이다. 참고: socket.io라는 모듈을 사용하면, WebSocket이 지원되지 않는 브라우저에서도 여러가지 방식을 동원해 비슷하게 구현해준다.(+편의기능 제공) socket.io에 대한 글 참고: [node.js] socket.io 웹 소켓 모듈 기본 사용 방법 ws사용 방법 기본 구..

ETC 2022.11.23

SOCKET 통신

소켓? SOCKET(소켓)? 프로세스가 네트워크를 통해서 데이터를 주고받으려면 반드시 열어야 하는 창구 같은 것이다. PORT(포트)를 통해서 통신을 진행하려면 기본적으로 소켓이 필요하다. 소켓의 경우 통신을 위해서 반드시 필요한 존재이며, 한 포트의 여러개의 소켓이 존재할 수 있다. 이는 하나의 앱에서 여러개의 통신이 가능한 이유와 같다 ex) 채팅 포트와 소켓의 관계를 간단히 정리하자면 포트, 소켓 프로세스가 고유하게 받는 것이 포트 그 포트내에서 통신을 위해서 사용되는 것이 소켓 소켓의 경우 포트가 여러개를 만들 수 있다. 같은 protocol, 같은 ip, 같은 port를 가진 데이터가 소켓을 찾아가는 방법? Descriptor(디스크립터) - 소켓 고유 번호 (서비스 pid와 유사) 여기까지 소..

ETC 2022.11.22

소켓(Socket) 포트(Port) 뜻과 차이

HOST 네트워크에 연결된 모든 종류의 장치를 노드(Node)라고 부르는데, 노드 중에서도 네트워크 주소(IP 주소)가 할당된 애들을 호스트(Host)라고 부른다. 스마트폰이든 데스크톱이든 노트북이든 인터넷에 연결돼 있으면 다 호스트라고 보면 된다. 이 호스트들끼리 서로 데이터를 주고받는다. ​ 실제로 데이터를 주고받는 것은 호스트 내 프로세스다 ​ 프로그램, 애플리케이션, 앱, 소프트웨어를 모두 프로세스로 용어를 통일해서 설명하겠다. 한 컴퓨터나 스마트폰 내에는 여러 개의 프로세스들이 존재하며 이 프로세스들은 동시에 혹은 마치 동시라고 느껴지게끔 동작한다. 예를 들어볼까? 음악을 들으면서 인터넷을 하거나, 게임을 하면서 영화를 다운로드하는 것 등등이 한 호스트에서 동시에 여러 프로세스들이 동작하는 예이..

ETC 2022.09.20

[Spring Boot] @SpringBootApplication

스프링부트 메인 클래스에는 @SpringBootApplication 라는 어노테이션이 붙어있다. @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 메인 클래스에 붙어 있는 @SpringBootApplication은 크게 3가지가 합쳐진 것이라고 생각할 수 있다. @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 스프링 부트 어플리케이션은 Bean을 2번 등록한다. 처음에 ComponentScan으로 등록하고, 그 후에 EnableAuto..

Spring 2022.06.30

J2EE란?

J2EE (Java 2 Enterprise Edition) J2EE란? J2EE는 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합입니다. J2EE를 만든 것은 Sun Microsystems이고 SUN에서 J2EE 스펙을 시범적으로 구현해두기는 하지만, IBM, BEA, Oracle, HP, Iona등 여러 벤더들도 그 스펙을 구현할 수 있으며 J2EE 호환성을 검증하는 기구의 검증을 통과하기만 하면 J2EE 호환 제품으로 시장에 출시할 수 있습니다. 그리고 이런 벤더들은 J2EE 스펙을 개선하는 과정에도 활발히 참여하기 때문에, J2EE는 사실상 SUN의 독점적인 기술이라기 보다는 Java진영으로 불리는 여러 Vendor들과 개발자들이 같이 만들어 가고 공유하는 기술로 보..

java 2022.05.30

JVM 메모리 구조

JVM(Java Virtual Machine)이란? 자바를 싱행하기 위한 가상 기계이다. 즉 자바를 실행하기 위한 가상 컴퓨터이다. 자바로 작성된 어플리케이션은 모두 이 가상 JVM에서만 실행되기 때문에 자바 어플리케이션이 실행되기 위해서는 JVM이 필요 자바 바이트 코드를 실행할 수 잇는 주체 운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실생시켜주는 역할을 한다. 가상기계란? 소프트웨어로 구현된 하드웨어 JVM의 구성 Class Loader, Execution Engine, Garbage Collector, Runtime Data Area 로 구성되어있다. Class Loader 자바에서 소스를 작성하면 Person.jav..

java 2022.05.25