본문 바로가기

to Developer10

Ajax 비동기 vs 동기 동기처리(Synchronous) : 클라이언트가 서버에게 데이터 요청을 하면 그 요청에 맞는 응답이 올때까지 다른 작업을 하지 않고(멈춰있음) 기다린다. 그 후에 요청에 맞는 응답을 받게 되면 그제야 다음 요청을 처리한다. 즉, 브라우저는 스크립트가 서버로부터 데이터를 수집하고 이를 처리한 후 페이지 나머지 부분이 모두 로드될 때까지 대기하는 것이다. 비동기처리(Asynchronous) : 클라이언트가 서버에게 데이터 요청을 한 후, 서버가 요청에 맞는 응답을 언제 줄지 모르기 때문에 무작정 기다리지 않고 비동기처리를 한다. 즉, 요청만 보내놓고 응답이 오지 않아도 다음 새로운 요청으로 넘어가버린다. (다른 작업이 가능) 여기서 자바스크립트 언어는 순차적 연산을 거치는 동기처리에 가깝다.. 2024. 2. 14.
WAS, Servlet 웹 서버와 웹 애플리케이션 서버 웹 서버 정적 리소스 파일을 제공하는 서버 ex) HTML, CSS, javascript, 이미지, 파일 등 즉시 응답 가능한 컨텐츠 웹 애플리케이션 서버(WAS) 웹 서버가 하는 일 + 애플리케이션 로직(DB 연결, 동작 수행, 데이터 제공)까지 제공하여 동적인 처리를 하는 서버 자바 진영에서는 서블릿 컨테이너 기능을 제공하면 WAS 라고 한다. 위 그림에는 없지만 WAS 안에도 웹 서버가 따로 존재한다. WAS만 써도 되겠다? NO. WAS는 DB 조회 및 다양한 로직을 처리하는 데 집중해야 하기에, 단순 정적 컨텐츠는 웹 서버에 맡겨 기능을 분리해 서버 부하를 방지한다. 웹 서버를 WAS 앞에 두고 필요한 WAS들을 웹 서버에 플로그인 형태로 설정하면 더욱 효율적인 .. 2024. 2. 1.
Spring Container, Bean Spring Container (스프링 컨테이너) 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 한다. 스프링에서는 자바 객체를 빈(Bean)이라 한다. 스프링 컨테이너의 종류에는 BeanFactory와 ApplicationContext가 있다. 둘 다 빈을 등록하고 생성하고 조회하고 돌려주는 등 빈을 관리하는 역할을 한다. ApplicationContext가 BeanFactory의 빈 관리 기능들을 상속 받았고, 그 외에 국제화 등의 추가적인 기능을 갖고 있어 스프링 컨테이너라고 하면 보통 ApplicationContext라고 한다. Spring Container 사용하는 이유 먼저, 객체를 생성하기 위해서는 new 생성자를 사용해야 한다... 2024. 1. 30.
Spring Framework Spring Framework (스프링 프레임워크) 프레임워크 (Framework) 프레임워크란 응용 프로그램이나 소프트웨어 솔루션 개발을 수월하기 위해 구조, 틀이 제공된 소프트웨어 환경 이다. Spring 스프링은 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크 이다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. POJO 기반의 구성으로 자바 코드를 이용해서 객체를 구성하는 방식 그대로 스프링에서 사용할 수 있다. 덕분에 높은 생산성과 유연한 테스트를 할 수 있다. DI(의존성 주입)을 통한 객체 관계 구성을 지원한다. 객체의 생성부터 소멸까지 객체 생명주기 관리를 사용자가 아닌 특별한 객체에게 맡긴다. (IoC) AOP(횡단 관심사 분리) 지원 MVC 구조로 계층이 분.. 2024. 1. 29.
Java 기초 Java 자바 기초에 대해 자주 보기 위해 정리! 접근 제한자 public : 접근에 제한이 없음 private : 자기 자신 클래스 내에서만 접근 가능 default : 동일한 패키지 내에서만 접근 가능 protected : 동일한 패키지 내에서만 접근 가능 + 상속을 이용한 접근 가능 String vs Char Char은 내용물이 1개인 문자로 제한되는 반면에 String은 문자열을 담을 수 있다. Char의 경우 변수 안에 직접적으로 문자를 가지고 있지만 String은 reference 타입으로 실질적인 문자열이 아니라 주소값을 가지고 있다. 이 때문에 비교 방식에 차이가 있다. Char의 경우 값이 같다면 ==(동일성) 비교를 사용할 수 있지만, String의 경우 내용이 같더라도 생성되는 주소가.. 2024. 1. 29.
JVM JVM 자바 가상머신으로 자바 바이트 코드를 실행할 수 있는 주체! 컴파일러를 통해 바이트 코드로 변환된 파일을 JVM에 로딩하여 실행 JVM의 구조 Class Loader : JVM 내(Runtime Data Area)로 Class 파일을 로드하고 링크 Execution Engine : 메모리(Runtime Data Area)에 적재된 클래스들을 기계어로 변경해 실행 Garbage Collector : 힙 메모리에서 참조되지 않는 개체들 제거 Runtime Data Area : 자바 프로그램을 실행할 때, 데이터를 저장 JVM 실행 과정 JVM은 OS로부터 메모리(Runtime Data Area)를 할당 받음 컴파일러(javac)가 소스코드(.java)를 읽어 바이트 코드(.class)로 변환 Clas.. 2024. 1. 28.