while(1) work();
반응형
2-1. Embeded Tomcat 사용하기

개요 매 번 코드 수정사항이 있을 때 마다 war로 패키징하고 Tomcat 경로에 war 파일을 넣고 Tomcat을 재시작 하는 일은 번거롭다. 다행히 Tomcat은 Embeded Tomcat을 지원하여 프로젝트 내에 Tomcat을 포함할 수 있다. pom.xml 의존성 추가 org.apache.tomcat.embed tomcat-embed-core ${tomcat.version} provided org.apache.tomcat.embed tomcat-embed-jasper ${tomcat.version} provided org.apache.tomcat tomcat-jasper ${tomcat.version} provided org.apache.tomcat tomcat-jasper-el ${tomcat...

article thumbnail
while(1)과 while(2) 중 누가 더 빠를까?
알고리즘/TIP 2022. 12. 30. 00:02

개요 while(1)과 while(2) 중 누가 더 빠를까? 당연히 같지 않나? 라는 생각이 들면서도 (variable == 0) 을 판별하려면 variable의 좌측 비트부터 하나씩 확인해보며 모두 0인지 확인해야 하는 것 처럼 while(0b000000000...01) 과 while(0b000000000...10) 이다 보니 좌측에서부터 비트가 0인지 확인하는 원리라면 while(2)가 더 빠를수도 있지 않을까? 싶었다. (while(1)보다 while(2)가 비트 "1"이 더 먼저 나오기 때문에 비교 연산 시 우위를 가져서) 하지만... 최근 C 컴파일러의 성능은 매우 뛰어나기 때문에 최적화로 인해 결국 같은 이진 코드를 가질 것 이라는 가설을 세우고 확인해보았다. 코드와 환경 Ubuntu 20.0..

4. JSP로 방명록 만들기

개요 Servlet에 HTML 코드가 섞여있으면 가독성도 떨어지고 유지보수 문제도 발생한다. 따라서 템플릿 엔진을 이용해 코드를 개선한다. JSP를 이용할 것이며, service 로직 호출 등은 모두 JSP 내에서 처리할 것이다. (절대 좋은 방식이 아니지만, 의도적으로 일단 그렇게 사용한다.) IndexServlet 변경 package com.lickthespring.web.servlet; import java.io.IOException; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servl..

3. Servlet으로 방명록 만들기

개요 Servlet을 이용해 방명록을 만들어 본다. 이후 템플릿 엔진을 이용해 코드를 개선하고 최종적으로 Spring MVC를 이용해 개선할 것이다. Comment Entity package com.lickthespring.web.entity; public class Comment { private final String name; private final String comment; public Comment(String name, String comment) { this.name = name; this.comment = comment; } public String getName() { return name; } public String getComment() { return comment; } } C..

article thumbnail
2. Servlet 만들어보기

개요 이제 HttpServlet을 상속받아 우리의 비즈니스 로직을 처리하는 Servlet을 만들고 WAS에게 처리하도록 하면 HTTP 애플리케이션이 완성된다. 프로젝트 생성 mvn archetype:generate 위 명령을 입력해 빈 프로젝트를 생성해주자. 4.0.0 com.lickthespring.web web 1.0-SNAPSHOT web war UTF-8 1.7 1.7 junit junit 4.11 test jakarta.servlet jakarta.servlet-api 6.0.0 provided maven-compiler-plugin 3.6.1 1.8 1.8 maven-war-plugin 3.3.2 src/main/webapp/WEB-INF/web.xml false 위와 같이 pom.xml을 수..

article thumbnail
1. Servlet과 WAS의 필요성

HTTP 서비스를 만드는 방법 HTTP 프로토콜 아래에서 동작하는 서비스를 어떻게 구현할 수 있을까? HTTP는 TCP 프로토콜을 사용해서 (주로) 80포트에서 위와 같은 평문을 주고받는 프로토콜이다. 클라이언트가 HTTP 프로토콜에 맞추어 Request를 보내면 서버도 HTTP 프로토콜 맞추어 Response를 보낸다. 따라서 아래와 같은 동작을 하는 프로그램을 만들면 HTTP 애플리케이션을 만들 수 있다. TCP 80포트에서 수신 대기 하는 소켓 생성 요청이 들어오면 HTTP 프로토콜에 맞는 형식인지 확인 HTTP Request 패킷을 분석해서 메서드(GET, POST, …), 요청 경로, 헤더 정보, 파라미터, 요청 본문 등을 파싱 메서드와 요청 경로에 맞는 함수를 호출 함수에서 비즈니스 로직 처리..

article thumbnail
16. Spring AOT(Ahead of Time)

Spring AOT란? Spring 6부터 Spring AOT(Ahead of Time; 사전 최적화) 기능이 도입되었다. 기존에는 Spring Native 프로젝트에서 실험해왔던 기능인데, 이제 Spring core에 포함되었다.

article thumbnail
15. Spring AOP(Aspect Oriented Programming)

AOP란? 관점 지향 프로그래밍은 메서드의 공통 로직(로깅 등)을 비즈니스 로직하고자 하는 프로그래밍 기법이다. 코드에 불필요한 중복을 줄이고 비즈니스 로직에만 집중할 수 있다. Spring에서는 AOP를 지원하기 위해 JDK 동적 프록시(java.lang.reflect.proxy)를 이용해 프록시 객체를 만든다. 그러나 원본 클래스가 인터페이스를 구현하지 않는 경우에는 예외적으로 CGLIB을 이용해 프록시를 만든다. (설정 파일이 CGLIB 프록시가 되는 것 처럼) AspectJ? AspectJ는 Java에서 AOP를 지원하기 위해 만들어진 오픈 소스 프로젝트이다. 자바 기반 문법을 사용하지만, 순수 자바와는 다소 차이가 있고, “.aj” 의 확장자를 가진다. package test; public as..

반응형

검색 태그