study (126) 썸네일형 리스트형 Servlet 스프링 이해를 위해 공부한 내용이라 다소 미흡함. 자바 웹 어플리케이션은 WAS에 설치되어 동작하는 자바 어플리케이션이다. 자바 웹 어플리케이션은 반드시 WEB-INF 폴더가 있어야 한다. 여기에는 web.xml 파일이 있다. web.xml은 배포 기술자다. 서블릿 3.0 미만에선 필수고, 3.0 이상에선 필수가 아니다. WEB-INF 폴더 밑에는 lib 폴더가 있고, 여기엔 각종 jar 파일들이 있다. Servlet은 자바 웹 어플리케이션의 구성요소 중 동적인 처리를 하는 프로그램의 역할을 한다. 서블릿은 WAS에서 동작하는 자바의 class다. 서블릿은 HttpServlet 클래스를 상속받는다. 요즘은 서블릿을 직접 작성하지 않고 프레임워크를 사용하지만, 프레임워크 또한 서블릿을 사용하므로 공부해야 .. 210223 TIL 프로그래머스 레벨1 1문제 풂 부스트코스 백엔드 강의 -> 스프링 공부하기 위해서 한바퀴 돌리는 느낌으로. 그래서 따로 정리는 안함. 자바 객체 강의 수강 따로 적기 뭐한 거 메소드의 이름은 클라이언트 코드에 맞춰 명명하는 것이 좋다. 자바에서 함수가 호출되면, 스택 메모리에 올라간다. 메인 메소드가 호출되면 메인 메소드가 스택에 들어가고 그 위에 메인 메소드가 호출한 메소드가 쌓인다. 그리고 메인 메소드에 의해 호출된 메소드의 사용이 끝나면 스택 메모리를 반환한다. WAS 웹서버는 소프트웨어를 보통 말하지만, 웹서버 소프트웨어가 동작하는 컴퓨터를 말한다. 웹서버의 가장 중요한 기능은 클라이언트가 요청하는 html 문서나 각종 리소스를 전달하는 것이다. 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적 데이터거나 동적인 결과가 될 수 있다. DBMS - 다수의 사용자들이 db 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 미들웨어 - 클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리로 인해 비용이 많이 발생하는 문제가 발생한다. 비즈니스 로직을 클라이언트와 DBMS 사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 한다. WAS는 일종의 미들웨어로 웹 클라이언트의 요청 중 보통 웹 애플리케이션이 동작하도록 지원하.. 자바/JAVA 메모리 사용 영역(Runtime Data Area) 인스턴스: 클래스를 구현한 실체. 힙 메모리에 멤버 변수의 크기에 따라 메모리가 생성된다. 클래스를 기반으로 new 키워드를 이용해 여러 인스턴스를 생성한다. 인스턴스가 생성되면, Heap 메모리에 올라간다. 인스턴스를 참조하는 레퍼런스 변수(참조 변수)는 Stack 메모리에 올라간다. 참조 변수에는 참조 값이 할당된다. 참조 변수 - 메모리에 생성된 인스턴스를 가리키는 변수 참조 값 - 생성된 인스턴스의 메모리 주소 값 JVM은 OS에게 할당받은 메모리 영역(Runtime Data Area)을 메소드, 힙, JVM 스택으로 세부영역으로 나눠 사용한다. 메소드 영역(Method Area) JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역. 사용되는 클래스들을 클래스 로더로 읽어 클래스별로 정적 필.. 210222 TIL - 시작 조금씩 공부한 것들은 따로 글쓰기가 애매했는데 TIL 작성하면서 같이 쓰기로 했다. 하나의 자바 파일 안에, 여러개의 클래스가 존재할 수 있고, 파일 이름과 같은 public 클래스 하나가 있어야 된다.(public 클래스는 하나만 존재한다.) 코딩 테스트 강의 - 코딩테스트 빠르게 준비하는 법 기본 개념 이해 자료 구조 정렬 시간 복잡도 -> 빅오가 n^2보다 작도록 연습 : 쉬운 문제부터 풀기 - 공책으로 문제 설명 -> 화이트보드 테스트 시간 복잡도를 알 수 있고 문제 유형별 문제 풀이 습득을 위해 실전 문제 풀 때, 미리 공책에 푼다. 테스트 케이스가 다 성공했다면, 변수명, 코드, 주석을 잘 정리한다. 가능하다면 문제 캡쳐 또는 정리. -> 나중에 다시 풀게 될 수도 있음. 스프링 공부 커리 다.. Spring Boot - 스프링 부트 동작 원리 데어프로그래밍 님의 스프링 부트 강의를 듣고 정리하는 글입니다.(www.youtube.com/channel/UCVrhnbfe78ODeQglXtT1Elw) 스프링에 배우면서 본문을 채워갈 예정. 1. 내장 톰캣을 가진다 톰캣은 WAS다. 톰캣을 http 통신을 한다. http는 Stateless 방식이다.(연결 유지X) http 통신은 요청과 응답으로 이뤄진다. 아파치는 일반 자원만 응답할 수 있지만, 톰캣은 jsp파일을 컴파일하여 응답할 수 있다. 2. 서블릿 컨테이너 서블릿을 모른다면 먼저 읽고 오기 - jang-sn.tistory.com/49 스프링은 URI로만 접근할 수 있다. -> 요청시에는 무조건 WAS(자바)를 거쳐야 한다. 서블릿은 간단히 말해, 클라이언트 요청을 처리하는 프로그램이다. 서블.. 자바/JAVA LIFO, FIFO 컬렉션 후입선출 LIFO Last In First Out: 나중에 넣은 객체가 먼저 나오는 자료구조. 선입선출 FIFO First In First Out: 먼저 넣은 객체가 먼저 나오는 자료구조. 컬렉션 프레임워크에는 LIFO를 지원하는 Stack 클래스, FIFO를 지원하는 Queue 인터페이스를 제공한다. Stack의 주요 메소드 리턴 타입 메소드 설명 E push(E item) 주어진 객체를 스택에 넣는다. E peek() 스택의 맨 위 객체를 가져온다. 객체를 제거하지는 않는다. E pop() 스택의 맨 위 객체를 가져오고, 객체를 스택에서 제거한다. 스택 생성 Stack stack = new Stack(); Stack stack = new Stack(); Queue의 주요 메소드 리턴 타입 메소드 설명.. 자바/JAVA 스레드(2) 스레드는 다양한 상태를 가지게 된다. 스레드 상태 제어: 실행 중인 스레드의 상태를 변경하는 것. 스레드 객체를 생성하고 start() 메서드를 호출하면 바로 스레드가 실행되는 것이 아니라 실행 대기 상태가 된다. 실행 대기 상태(Runnable): 바로 실행할 준비가 된 상태. 실행을 기다리는 상태. 실행 상태(Running): 실행 대기 상태인 스레드 중에서 OS가 하나를 선택하고 CPU가 스레드의 run() 메서드를 실행시킨다. 이때가 실행 상태이다. 실행 상태 스레드는 run() 메소드를 모두 실행하기 전에 실행 대기 상태로 돌아갈 수 있고, 실행 대기 상태에 있는 다른 스레드가 선택되어 실행 상태가 되기도 한다. 따라서 스레드는 실행 대기 상태와 실행 상태를 번갈아가면서 자신의 run() 메서드.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 16 다음