목차 JVM? JVM 내부 구조 Bytecode 예제 실행 태초에 문제가 있었다. C/C++는 컴파일 플랫폼과 타겟 플랫폼이 다를 경우, 프로그램이 동작하지 않는다. *환경 플랫폼 = 운영체제 + CPU 아키텍쳐 물론 개발할 때는 문제없다. 동일한 플랫폼에서 컴파일과 실행을 같이 한다면, 프로그램은 아무 문제없이 동작한다. 배포할 때 문제가 발...
코드의 재사용을 통해서 중복을 줄인다.확장성이 증가한다.클래스 간의 계층적 관계를 구성함으로써 다형성을 구현할 수 있다.개발 시간이 단축된다.캡슐화를 깨트린다.상위 클래스의 구현이 하위 클래스에게 노출되기 때문에 캡슬화가 깨진다.따라서 자식 클래스가 부모 클래스에 강하
가상메모리란, 메모리 관리 기법중 하나로 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법사용자 프로그램이 물리 메모리의 제약에서 벗어남각 프로그램이 더 작은 메모리를 차지하기 때문에 더 많은 프로그램을 동시수행 가능한 것처럼 보임프로그램을 메
End Point간 신뢰성있는 데이터 저송을 담당하는 계층신뢰성 : 데이터를 순차적, 안정적인 전달전송 : 포트 번호에 해당하는 프로세스에 데이터 전달Q. 전송 계층이 없다면? (전송 계층의 중요성)데이터 순차 전송 원활하지 않음Flow(흐름 문제) : 송수신자 간의
프로세스와 스레드.뭔가 여러가지 일을 동시에 처리할 수 있을 것 같은 기능. 비슷한 의미인가?<키워드>실행 단위 - CPU Core에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념(부연 설명이 없는) 프로세스 - 하나의 스레드만 가지고 있는 단일 스레
OSI 7계층두 대의 컴퓨터가 통신하려면?모든 파일과 프로그램은 0과 1의 나열이다. 0과 1의 교환을 할 수 있으면 컴퓨터 통신이 가능하다.이 간단한 아이디어는 실제 상황에서 잘 되지 않았다 이유는?Sin 함수의 언급. 전자기파를 표현하는 함수 (time-Volt 그
서블릿(Servlet)웹 애플리케이션을 만들 Eo 필요한 인터페이스Spring Web MVCSpring Framework에 있는 모듈. Web Service를 만든다.MVC 패턴을 사용해서.사용자(요청)에 따라 다른 처리를 해줄 수 없다.동적인 처리를 해주는 웹 애플리
Spring과 Spring Boot의 차이점.Spring framework를 Spring이라고 부른다.Springdependency : 너무 길다. 버전 설정도 명확해야 한다.configuration : 별도로 작성해줘야 함. 번거로움.embedded server :
Web Server VS WAS"우리는 6대의 WAS를 사용하고 있다?"WEB이란?인터넷을 기반으로 한 정보를 공유 및 검색할 수 있게 하는 서비스URL(주소), HTTP(통신 규칙), HTML(내용)Server클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴
API(Application Programming Interface)응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스. API의 특징은 다음과 같다구현과 독립적으로 사양만 정의되어 잇다.API에 따라 접근 권한이 필요할 수
Spring으로 Servlet을 다룬다는 것1\. 서블릿이란아래는 서블릿으로 요청을 처리할 때 사용할 수 있는 http servlet request가 제공하는 메서드의 일부서블릿을 이용해서 웹요청(HTTP 요청 및 응답)을 다루게 되면 개발자들이 진짜 집중해야 하는 비
JDBC(Java Database Connectivity) 체스 과제 (1) - 테이블 생성 체스 과제 (2) - Connection 설정 체스 과제 (3) - 데이터 삽입 JDBC는 DB의 고유한 특징을 몰라도 접근할 수 있게 해주는 역활을 함. JPA(Java
IoC란(Inversion Of Control, 제어의 역전)?일반적으로 제어란 직접 객체를 생성하여 코드를 제어하는 것.객체 생명주기나 메서도의 호출을 직업 제어 또는 관리한다.제어의 역전이란 프로그램의제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것(1)
웹 요청과 응답 과정을 떠받치는 핵심 개념들웹과 인터넷은 엄밀히 말하면 다르다.(1) LAN(Local Area Network)근거리 통신망, 구내 정보 통신망은 네트워크 매체를 이용하여 집, 사무실, 학교 등의건물과 같은 가까운 지역을 한데 묶는 컴퓨터 네트워크.e.
웹 네트워크 기본HTTP(HyperTexT Protocol) : 서버-클라이언트 메시지 교환 프로토콜프로토콜(Protocol) : 서로 다른 하드웨어 기기 간 통신 규약HTTP 프로토콜 구성HTTP 프로토콜 특성HTTP 메서드HTTP 상태코드HTTP 메시지
HTTP(HyperText Transfer Protocol)서로 다른 시스템들 사이에서 통신을 주고받게 하는 가장 기본적인 프로토콜서버에서 브루아저로 데이터로 전송하는 용도로 가장 많이 사용함암호화가 되지 않아 데이터 탈취 우려가 있음HTTPS(HyperText Tra
스프링 빈(Spring Bean)이란?스프링 IoC(Inversion of Control) 컨테이너가 관리하는 객체직접 의존성을 주입하기 위해서는 의존관계를 모두 파악해야 한다. (어플리케이션 규모가 커지면 거의 불가능에 가까운 일)스프링 IoC 컨테이너에서 의존성을
MVC 패턴의 역사 ![](https://velog.velcdn.com/images/mercurios0603/post/3f3921db-4ed5
Gradle이란? 다양한 라이브러리의 등장 (1) 스프링 부트 라이브러리 spring-boot-starter-web spring-boot-starter-tomact : 톰캣(웹서버) spring-webmvc : 스프링 웹 MVC spring-boot-s
객체지향 프로그래밍이란?프로그램 방법론사람이 현실적 바라보는 방법을 개발에 접목직관적으로 이해하기 쉽다.유지 보수를 용이하게 만든다.키워드로 알아보는 객체지향객체객체는 현실의 무엇인가에 대응하는 개념이다.class는 객체를 표현하는 하나의 수단이다 (class != 객
다양한 N+1 발생 상황이 있지만 본 웨비나에서는 @OneToMany(1:N)를 중심으로 발표. 지연 로딩(Lazy Loading)이란? JPA(Java Persistence API, 자바 지속성 API)에서 "지연 로딩"은 엔티티(Entity)의 연관 관계를
영속성 레이어(Persistance Layer)를 구현하는 방법은 크게 두 가지로 나뉜다.(1) JDBC만을 이용하거나 (본 웨비나에서 살펴볼 것)(2) Persistence Framework를 이용하거나.
발표대상 : 현업에서 JPA & Querydsl-JPA를 쓰고 계신분꼭 무언가를 상속/구현 받지 않더라도, 꼭 특정 Entitiy를 지정하지 않더라도 Querydsl을 사용할 수 있는 방법에 대한 고민. 아래는 그 해결책.exist는 데이터를 찾으면 검색이 끝나지만,
save 메서드 통과, 테스트 메서드 assertThat.isEqualTo 시행, findById 메서드 통과위의 모든 기능을 테스트해보니 동시성 보장이 되지 않음 (테스트 실패)조회는 할 수 있지만, 값을 가져올 수 없는 상태강제로 flush 명령을 할 때JPAL 쿼
1. Overivew 2. 요청-응답 흐름 정리 Browser 웹 서버에서 이동하여(navigate) 쌍방향으로 통신하고 HTML 문서나 파일을 출력하는 그래픽 사용자 인터페이스 기반의 응용 소프트웨어이다. 웹 브라우저는 대표적인 HTTP 사용자 에이전트의 하나이기도 하다. 즉, 브라우저는 웹 서버에 원하
리소스가 필요해! 웹 브라우저 요청 흐름 HTTP 메시지 ![](https://velog.velcdn.com/images/
유지보수의 용이함을 위한 규칙성을 패턴화시킴.즉, MVC는 유지보수가 편해지는 코드 구성 방식
인증과 인가에 대한 지식 습득 및 복습프로젝트에서 선택한 인증 방식에 대한 근거인증 이후 인가.서버와 클라이언트는 HTTP를 통해 소통브라우저에서 Base64 인코더를 이용해 암호를 보안화시켜 전달문제는 사용자가 매번 인증(로그인)해야 한다.브라우저의 저장소를 이용 (
데이터 불변성 보장 : 생성자를 통해 값을 초기화하고, Setter 메서드를 삭제!고유번호에 상관없이 다 같은 만원권이다.역시나 Setter 메서드 없이 생성자로만 초기화 실시속성이 아닌 값만을 다뤄야 함. 그것이 VO
개발할 때에 빈번히 쓰여지는 범용 기능을 한꺼번에 제공해 개발 효율의 향상을 목표로 하는 소프트웨어 환경 (프로그램의 기본이 되는 뼈대)재사용 가능한 코드의 집합정부기관 또는 기업의 독자적인 DB를 바탕으로 한 API도 다수 존재
Debug 모드로 실행 Resume Step Over Step Into Step Out, Drop Frame Conditioned break point Watch Evaluate Expression 스프링에서의 debug
엔진엑스(Nginx) 예시임Health check (헬스 체크)WAS만으로도 서비스 운영은 가능하지만 서비스 확장성, 안정성을 고려한다면 앞 단에 Web Server를 따로 두는 것이 유리
정적인 데이터만 제공 가능했다. HTML.CGI(Common Gate Interface) 구현체를 이용해 동적 데이터를 제공했었음.그러나 문제점이 존재했었음1\. 프로세스를 이용해 요청을 처리 (프로세스는 단일 업무만 실행가능, 비용이 큼)2\. 같은 요청이 와도 같은
스프링 시큐리티는 인증과 인가를 제공하는데 초점을 맞춘 프레임워크다.과정 3의 AuthenticationManager의 작동 구조스프링부트 3.2 이전스프링 부트 3.1 이후실제 작성 코드tokenAuthenticationFilter의 내부 코드업로드중..
Spring AOP와 AspectJ
어플리케이션과 커널의 관계에 대한 이야기.=> 다른 주체가 작업할 때 자신의 제어권이 있는지 없는지로 구분.=> 결과를 돌려주었을 때 순서와 결과에 관심이 있는지 아닌지로 구분.해당 데이터를 가져올 때까지 유저에게 정보의 로드율이 표시됨개발자의 실수 혹은 기타 이유로
override = 재정의인터페이스는 클래스와 달리 다중상속이 가능하다.만일 Dancer가 추가되고 Singer, SongWriter, Dancer의 기능을 모두 가지는 추상 클래스를 만들려면 몇 개의 클래스를 만들어야 할까? (상속을 이용하면)물론 이러한 기능은 추
계층구조를 만드느냐, 코드를 재사용하느냐의 차이.
네트워크 통신을 위해 미리 정해 놓은 공통된 메뉴얼을 프로토콜이라고 한다.인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜의 "집합"집합이면 정보의 형식에 따라 프로토콜도 구분된다는 이야기로 볼 수 있겠구나. (맞음)아.. 패킷은 각 계층에 전달하기 위한
MyISAM 스토리지 엔진 아키텍처
클래스에서의 this