전체 글
-
[Servlet] Servlet 개념카테고리 없음 2024. 4. 21. 23:50
Servlet이란? 클라이언트의 요청을 처리하고 , 그결과를 반환 시켜주는 프로그래밍 기술 Servlet 없이 요청 처리 Form 데이터 전송을 하면 Form 데이터관련 HTTP 메시지를 만든다. TCP 통신을 통해 전송한다. HTTP 메세지는 Text형태임으로 관련 내용을 하나한 파싱하여 URL, 실행할 로직과 필요한 데이터를 얻는다. 비즈니스 로직을 수행한다. HTTP 응답 메시지를 작성 후 TCP 통신을 통해 결과를 반환한다. ※ 비즈니스 로직 작성을 위해서 전후 처리가 많아 비효율적 Servlet 으로 요청처리 Servlet 코드 // /hello 요청에 반응하는 servlet // HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 을 상속 받는다. @We..
-
웹 서버카테고리 없음 2024. 4. 21. 21:28
웹 서버란 ? 웹 서버란 HTTP 프로토콜을 기반으로 클라이언트의 GET, POST 등의 메소드를 활용한 요청을 서버에 전달하고 이를 서버라는 또 다른 컴퓨터가 그 요청을 처리하여 다시 클라이언트에게 전달해주는 작업 HTTP 기반 웹 서버, 웹 어플리케션은 HTTP 기반으로 통신한다 - HTML, TEXT - Image, 음성, 영상, 파일 - JSON, XML - 서버간 통신 - 거의 모든 형태의 데이터를 전송 가 웹 서버 - HTTP 기반으로 동작 - 정적 리소스 제공, 기타 부가기능 - 정적 파일, HTML, CSS, JS, 이미지, 영상 ex) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) - HTTP 기반으로 동작 - 웹 서버 기능 포함 + ..
-
테스트 코드란카테고리 없음 2024. 4. 15. 23:20
테스트 코드란? 작성한 코드가 의도된 대로 작동하는지 검증하는 코드 테스트의 종류 단위 테스트 (Unit Test) 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트 (하나의 기능 또는 메소드) 어떤 기능일 실행되면 어떤 결과가 나올지 정도로 테스트한다. 통합 테스트 (Integration Test) 모듈을 통합하는 과정에서 모듈간의 호환성을 확인하기 위해 수행되는 테스트 테스트 코드의 장점 개발 과정 중 예상치 못한 문제를 미리 발견할 수 있다. 클라이언트를 통해 하나하나 기능을 작동하지 않고 테스트할 수 있다. 코드 수정이 필요한 상황에서 유연하고 안정적인 대응을 할 수 있게 해준다. 테스트 코드는 변경에 대한 사이드 이펙트를 줄이는 예방책이 된다. 코드 변경시, 변경 부분으로 인한..
-
AOP란?Spring/AOP 2024. 4. 14. 23:50
AOP(Aspect Oriented Programming) 란? 관점 지향 프로그래밍이라고 불리며 어떤 로직을 기준으로 핵심적인 관점(core concerns), 부가적인 관점(cross-cutting concerns)으로 나누어 모듈화 하는 방법을 말한다. AOP 예시 회원가입기능을 만들고 회원가입 기능의 성능을 확인하기 위해 소요시간이 얼마나 걸렸는지 계산하는 로직을 추가하고 싶다. public class MemberService { private MemberRepository memberRepository; @Autowired public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepositor..
-
[JPA] JPA 기본Spring/JPA 2024. 4. 14. 02:45
JPA(Java Persistence API) 란? Java ORM 기술에 대한 표준 명세로, JAVA에서 제공하는 API (Spring에서 제공X) ※ ORM(Obejcet-relational-mapping) 이란 객체 관계 맵핑 객체는 객체대로 설계, 관계형 데이터베이스는 관계형 데이터베이스대로 설계 객체와 관계형 데이터베이스를 ORM 프레임워크가 중간에 맵핑 해준다. JPA의 동작 과정 JPA는 어플리케이션과 JDBC 사이에서 동작한다. 개발자가 JPA를 사용하면 JPA 내부에서 JDBC API 를 사용하여 SQL을 호출하여 DB와 통신한다. 저장 과정 MemberDAO에서 객체를 저장하고 싶을 때 개발자는 JPA에 Member 객체를 넘기면 JPA는 아래와 같이 동작한다. 1) Member 엔티티..
-
[JDBC] JDBC로 DB 직접 연결Spring/JDBC 2024. 4. 10. 00:54
JDBC(Java Database Connectivity)란? JDBC는 Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 Java에서 사용할 수 있도록 하는 Java API이다. JDBC가 없던 시절에는 Connection 연결 SQL 전 결과 응답 위 3가지 과정을 거쳤는데 만약 사용하는 DB를 변경하 애플리케이션의 코드 변경 및 그 DB를 사용하기위한 Connection 연결, SQL 전달, 결과 응답 받는 방법을 다시 익혀서 사용해야했다. JDBC는 3가지 기능을 표준 인터페이스로 정의하여 제공한다. java.sql.Connection - 연결 java.sql.Statement - SQL을 담은 내용 java.sql.ResultSet - S..
-
[Spring Boot] Dependency Injection DI / Bean 관리카테고리 없음 2024. 4. 7. 03:01
Dpendency Injection, DI (의존성 주입)이란? 외부에서 클라이언트에게 서비스를 제공(주입) 해주는 것을 의미한다. -> 즉 객체가 필요로 하는 어떤 것을 외부에서 전달 해주는 것이다. * 의존성이란 ? - 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다. ex) 아래 MemberService 클래스를 사용하기 위해서는 MySqlMemberRepository가 필요하다. -> MemberService 는 MySqlMemberRepository에 의존한다. public class MemberService { private MySqlMemberRepository mySqlMemberRepository; public MemberService() { this.mySqlMemberRepos..
-
[Build] Build Tool - Maven vs GradleSpring/Spring Boot 2024. 4. 5. 00:25
Build 란? Build는 작성된 코드를 실제 기기에서 실행 될 수 있는 소프트 웨어로 변환시키는 과정을 의미한다. Build 과정의 세분화 라이브러리 다운로드 소스코드 컴파일 컴파일한 코드 패키징 테스트 코드 실행 product 배포 Build Tool이란? 규모가 작은 프로젝트라면 간단하지만 큰 프로젝트라면 위 과정을 수동으로 진행하면 많은 시간이 걸리게 된다. 이러한 Build 과정을 자동으로 진행 시키는것이 Build Tool이다. (+ 외부 라이브러리 버전 관리) Java에서 사용하는 Build Tool 종류 Ant - XML을 사용 - 간단하고 사용하기 쉬움 - 자유로운 빌드 단위 지정 - 복잡한 프로젝트 경우 장황해짐 - 외부 라이브러리 관리 기능이 없음 - 라이프 사이클 없음 Maven ..