본문 바로가기
728x90

☕️자바 𝗝𝗔𝗩𝗔33

[Network] Apachi, Nginx, Tomcat 이 하는일이 뭘까? (Apachi와 NginX의 차이점) Apachi, NginX.. - 프록시서버(웹서버) Tomcat, Jetty.. - WAS(Web Application Server) 톰캣은 자바 서블릿을 serving 해주는 역할 nginx는 보안 + 라우팅 + 정적 웹서버 node.js는 자바스크립트 런타임 웹서버의 경우 어떤 요청에 대해 http 프로토콜(html)로 응답을 내려준다. 보통의 단순한 정적 웹서버. WAS의 경우 어떤 요청에 대해서 비즈니스 로직(java코드 + 디비접근 + 보안 등)을 거친 후 http 프로토콜로(html)로 응답을 내려준다. Node.js도 was가 될 수 있다. nginx를 앞단에 두고 뒤에 톰캣이랑 node.js 둘다 둘 수 있음. Node.js 는 톰캣과 스프링보다 뒤에 개발되었기 때문에, Tomcat과 Sp.. 2022. 12. 11.
[Mac] JAVA 11(Zulu JDK11) 다운로드 및 설치 brew 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" zulu java 설치 brew tap mdogan/zulu ==> Tapping mdogan/zulu Cloning into '/usr/local/Homebrew/Library/Taps/mdogan/homebrew-zulu'... remote: Enumerating objects: 616, done. remote: Counting objects: 100% (191/191), done. remote: Compressing objects: 100% (49/49), done. remote: Total 616 (delta 13.. 2022. 12. 8.
[java] HashMap 순회, 4가지 반복문 HashMap map = new HashMap(); map.put("a", "val1"); map.put("b", "val2"); map.put("c", "val3"); HashMap으로 저장된 map을 반복문으로 꺼내보자. (1) map.forEach((k, v) -> { System.out.println(String.format("키: %s, 값: %s", k, v)); }); 키: a, 값: val1 키: b, 값: val2 키: c, 값: val3 (2) Iterator keys = map.keySet().iterator(); while (keys.hasNext()) { String key = keys.next(); System.out.println(String.format("키: %s, 값: %.. 2022. 12. 7.
[java] 자바 메모리 구조(static, stack, heap) 프로그램을 구동하기 위해서 운영체제가 메모리에 데이터 및 명령어를 저장할 공간을 할당해준다. 메모리를 효율적으로 사용하기 위해, 메모리의 구성과 특징에 대해서 이해해보자. Runtime Data Area [1] Static area || Class Area 메서드 영역, 클래스 영역, 코드 영역, 스태틱 영역으로 이루어져 있다. 하나의 JAVA 파일은 크게 필드(field), 생성자(constructor), 메소드(method)로 구성된다. 그중 필드 부분에서 선언된 변수(전역변수)와 정적 멤버변수(static이 붙은 자료형) Static 영역에 데이터를 저장한다. Static 영역의 데이터는 프로그램의 시작부터 종료가 될 때까지 메모리에 남아있게 된다. 다르게 말하면 전역변수가 프로그램이 종료될 때까지.. 2022. 11. 18.
[java] 피라미드 별찍기 예제 for (int i = 0; i < size; i++) { for (int j = 1; j < size - i; j++) { System.out.print(" "); } for (int k = 0; k < i * 2 + 1; k++) { System.out.print("*"); } System.out.println(); } 2022. 11. 9.
[java] 자바 별찍기 모래시계 찍기 [방법 1] public static void main(String[] args) { int size = 4; for (int i = 0; i i * 2; j--) { System.out.print("*"); } System.out.println(); } else { for (int j = 0; j < 2 - (i - 4); j++) { System.out.print(" "); } for (int k = 0; k < 2 * (i - 3) + 1; k++) { System.out.print("*"); } .. 2022. 11. 8.
String 과 String Pool String은 Java 에서 제공하는 특별한 자료형이다. Java에서 String 객체를 생성하는 방법은 2가지가 있는데 첫번째는 String literal (큰 따옴표""를 사용하는 것), 두번째는 new 연산자를 사용하는 것이다. 두 방법에는 어떤 차이가 있을까? public class Main { public static void main(String[] args) { String s1 = "example"; String s2 = "example"; String ss1 = new String("example"); String ss2 = new String("example"); System.out.println(s1 == s2); System.out.println(s1.equals(s2)); Syst.. 2022. 11. 4.
[java] 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기 [ 핵심 내용 ] JVM이란? JVM 구성 요소 바이트코드란, 바이너리 코드 컴파일 & 실행하는 방법 JIT 컴파일러란? JIT의 동작 JDK와 JRE의 차이 1. JVM이란? Java Virtual Machine 즉, 자바(j)를 실행하기 위한 가상 기계(vm). 자바 가상 머신으로 자바 바이트코드(.class 파일)를 컴퓨터가 이해할수 있는 바이너리 코드로 변환하여 실행한다. 1-2. 바이트 코드, 바이너리 코드 - 바이트코드 바이트 코드 0과 1로 구성되어 있는 이진 코드이지만 바이너리 코드와 다르게 가상 머신이 이해할 수 있는 코드 사람에게 더 친숙한 고급언어보다는 덜 추상적이지만 기계어보다는 추상적이다. 컴퓨터가 이해 할 수 있는 .. 2022. 11. 2.
[Java] 가변인자(varargs, 쩜쩜쩜) 사용법 (매개변수 동적 사용) 가변인자란, 하나의 함수에서 매개변수를 동적으로 받을수 있는 방법. 메서드의 매개변수 개수를 동적으로 지정해주는 방법이다. '타입… 변수명' 형식으로 선언할 수 있고, 예시로 PrintStream Class의 printf()가 있다. public PrintStream printf(String format, Object ...args) { ... } 가변인자와 비슷한 방법으로 오버로딩이 있지만, 오버로딩은 다음과같이 함수 정의를 여러개 해야하고 public class test { public static void main(String[] args) { test t = new test(); t.variable("A"); t.variable("A","B"); t.variable("A","B","C"); } p.. 2022. 10. 25.
728x90