본문 바로가기
728x90

전체 글196

[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/개발자면접] 디자인패턴 '싱글턴' (싱글턴 구현 방식, 주의점, 단점) 1. 싱글턴이란? 싱글톤(Singleton) 패턴은 어떤 클래스의 인스턴스가 오직 하나임을 보장하며, 이 인스턴스에 접근할 수 있는 전역적인 접촉점을 제공하는 패턴입니다. 즉, 프로그램 시작부터 종료 시까지 어떤 클래스의 인스턴스가 메모리 상에 단 하나만 존재할 수 있게 하고, 이 인스턴스에 대해 어디에서나 접근할 수 있도록 하는 패턴입니다. 싱글톤 패턴이 고안된 이유: 개발을 하다보면 어떤 클래스에 대해 단 하나의 인스턴스만을 갖도록 하는 것이 좋은 경우가 있습니다. 예를 들어, 로그를 찍는(Logging) 객체라던가 쓰레드 풀, 윈도우 관리자 등 여러 객체를 관리하는 역할의 객체는 프로그램 내에서 단 하나의 인스턴스를 갖는 것이 바람직합니다. 어떻게 접근할 수 있나? 전역변수? 틀린 말은 아니지만.... 2022. 11. 28.
[개발자면접] 데이터베이스 (RDBMS, NOSQL 차이점) 이번 편은 NoSQL DB를 사용하는 분들이 참고하시면 좋습니다. 1. RDBMS, NOSQL 차이점 - RDBMS RDBMS는 관계형 데이터베이스 관리 시스템으로서, 구성된 테이블끼리 관계를 맺고 모여있는 집합체입니다. 테이블 형식으로 속성, 값으로 이루어져 있습니다. 트랜잭션 처리가 가능하고, 스키마를 미리 정의해 줘야해서 테이블 생성문으로 정의해줍니다. CREATE TABLE member( id int not null auto_increment primary key, name varchar(10) nut null, password varchar(12) not null, reg_date datetime not null ); - NOSQL NoSQL은 테이블 간의 관계를 정의하지 않고 key-value.. 2022. 11. 28.
[개발자면접] 네트워크 (OSI7 Layer, 공인IP 사설IP, HTTP, HTTPS, 쿠키 세션, 로드밸런싱) 1. OSI 7 layer와 각 계층에 대해 아는대로 설명해주세요. OSI 7 계층은 네트워크 통신을 구성하는 요소들을 7개의 계층으로 표준화한 것입니다. 이렇게 표준화하는 장점은 통신이 일어나는 과정을 단계별로 파악할 수 있어서, 문제가 발생하면 해당 문제를 해결하기 좋습니다. 7 계층(응용 계층) : 사용자에게 통신을 위한 서비스 제공. 인터페이스 역할 6 계층(표현 계층) : 데이터의 형식(Format)을 정의하는 계층 (코드 간의 번역을 담당) 5 계층(세션 계층) : 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층 4 계층(전송 계층) : 프로그램과 프로그램의 연결. 최종 수신 프로세스로 데이터의 전송을 담당하는 계층 (단위 :Segment) (ex. TCP, UDP) 3 계층(네트워크 계층) .. 2022. 11. 26.
[개발자면접] HTTP, HTTPS 프로토콜 비교 차이점(SSL handshake, SSL 인증서) 1. HTTP 프로토콜에 대해 설명해주세요. Hyper Text Transfer Protocol 로, 웹에서 데이터를 주고 받기 위한 프로토콜입니다. 상태 정보를 저장하지 않는 Stateless의 특징과, 클라이언트의 요청에 응답을 보낸 후 연결을 끊는 특징을 가지고 있습니다. 그래서 이전 통신의 정보를 모르기 때문에 매번 인증을 해줘야 하고 이를 해결하기 위해 쿠키(cookie)나 세션(session)을 사용합니다. HTTP의 특징 (Stateful과 Stateless, 쿠키, 세션, 토큰, 인증방식 비교) 2. HTTP와 HTTPS의 차이점은 무엇인가요? HTTP는 평문으로 데이터를 전송하기 때문에, 이걸로 아이디나 패스워드 같은 정보를 주고 받으면 패킷 캡쳐를 했을때 그 내용을 다 볼 수 있습니다... 2022. 11. 25.
[개발자면접] 트랜잭션이란? 트랜잭션이란? 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위. 특징으로는 1) 원자성(DB에 모두 반경되거나 반영되지 않거나 2) 일관성 (데이터 타입이 전과 후가 항상 동일해야 한다) 3) 독립성 (하나의 트랜잭션은 다른 트랜잭션에 영향을 줄 수 없다. 4) 지속성(트랜잭션이 성공적으로 완료된다면 영구적으로 결과에 반영된다. 이는 commit을 통해 보장한다. RollBack은 트랜잭션이 비정상적으로 종료가 되었을 때 변경된 결과를 취소함으로써 원자성을 보장) 가 있다. 2022. 11. 25.
[개발자면접] 스택과 힙 영역 차이, Call By Value & Call By Reference 1. 스택과 힙 영역 차이 - 스택(stack) 영역 정적 메모리를 저장하는 공간 입니다. 값 형식을 저장하고, 지역변수와 매개변수가 저장되는 영역 입니다. 한 코드 블록 안에서 생성된 변수들은 블록이 닫히면 메모리에서 제거됩니다. 스택은 컴파일 타임에 크기가 결정됩니다. - 힙(heap) 영역 동적 메모리를 저장 합니다. 전역 변수를 다루고, 참조 형식을 저장하는 영역이고, 자동으로 제거되지 않으며, 가비지 컬렉터(GC)가 관리해 줍니다. 런 타임에 크기가 결정됩니다. 자바 메모리 구조(static, stack, heap) (해당 게시글에 힙과 스택 메모리에 데이터가 저장되는 나름 자세한 과정이 있습니다.) 2. Call By Value & Call By Reference Call By Value는 값.. 2022. 11. 25.
728x90