웹개발

    [Spring] 의존성 주입 테스트, 테스트 환경

    1. 의존성 주입 테스트 https://tadaktadak-it.tistory.com/102 [Spring] 스프링 프레임워크의 특징 * 스프링 프레임워크의 특징 POJO 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 AOP 지원 편리한 MVC 구조 WAS에 종속적이지 않은 개발 환경 1. POJO(Plain Old Java Object) 기반의 구성 오래된 방 tadaktadak-it.tistory.com - 전에 스프링 프레임워크의 특징에서 말했듯이 의존성 주입을 하기 위해서 두 가지의 방법이 필요하다. - 첫번째는 setter를 이용하는 것이고, 두번째는 생성자를 이용해서 하는 것이다. [시나리오] - 호텔, 레스토랑 안에 셰프 객체를 주입하는 예제 - 생성자, setter 메소드를 ..

    [Spring] Lombok 라이브러리

    1. Lombok 라이브러리 이클립스와 스프링 플러그인 만으로도 스프링 개발이 가능하지만, Lombok(롬복)을 이용하면 Java 개발시 getter/setter, toString(), 생성자 등을 자동으로 생성해주므로 설치가 필요 https://projectlombok.org/download Download projectlombok.org > 1.18.12 다운로드 > 다운받은 jar파일 더블클릭으로 실행(>> java -jar lombok.jar) > eclipse.exe 경로 설정 > 설치 완료시 eclipse.exe 경로에 lombok.jar 파일 생성 여부 확인 2. Lombok 사용 @Data - setter, getter, 생성자, toString() 등 모든 것을 자동으로 생성 @Sette..

    [Spring] 스프링 프레임워크에서의 프로젝트

    1. 프로젝트 생성(Maven) new > Spring Legacy Project > Spring MVC Project > pom.xml 수정 > jre 1.8로 수정 Maven은 프로젝트 관리 도구의 일종 Maven은 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러라들까지 관리하여 네트워크를 통해 자동으로 다운로드하여줌 https://mvnrepository.com/ Maven Repository: Search/Browse/Explore Defer and combine exceptions (Test suite) Last Release on Jun 30, 2022 mvnrepository.com 위 사이트에..

    [Spring] 스프링 프레임워크의 특징

    * 스프링 프레임워크의 특징 POJO 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 AOP 지원 편리한 MVC 구조 WAS에 종속적이지 않은 개발 환경 1. POJO(Plain Old Java Object) 기반의 구성 오래된 방식의 간단한 자바 객체 Java 코드에서 일반적으로 객체의 구성하는 방식을 스프링에서도 그대로 사용할 수 있음 2. 의존성 주입(DI)을 통한 객체 간의 관계 구성 의존성(Dependency) - 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미 - 예를 들어 A 객체가 B 객체 없이 동작이 불가능한 상황을 'A가 B에 의존적이다'라고 표현 - 이때 B 클래스가 수정이 된다면 의존적이기 때문에 A 클래스도 수정을 해줘야하며 만약 여러 클래스가..

    [Spring] 스프링 프레임워크

    [학습 목표] 스프링 프레임워크를 이용해서 '의존성 주입'에 대한 이해와 테스트 스프링에서 XML을 이용하는 객체 관리 방법 스프링의 JUnit 테스트 환경 구축 스프링 MVC 모델에 대한 이해와 구현 1. 프레임 워크 뼈대나 근간을 이루는 코드들의 묶음 개발자는 각 개개인의 능력 차이가 큰 직종이고, 개발자 구성에 따라 프로젝트 결과 역시 큰 차이를 낳음 이런 상황을 극복하기 위한 코드의 결과물이 바로 프레임워크 프로그램의 기본 흐름이나 구조를 정하고 모든 팀원들이 이 구조에 자신의 코드를 추가하는 방식으로 개발 2. 프레임 워크의 장점 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에, 실력이 부족한 개발자라 하더라도 반쯤 완성된 상태에서 필요한 부분을 조립하는 형태의 개발이 가능 회사 입장에서..

    [JSP] MVC Model, Front-Controller 패턴, Model2의 페이지 이동 방식

    1. MVC JSP 방식- 처리도 jsp에서 하는 방식(jsp에서 DB 연결해서 사용) - 각 페이지마다 필요시 자바 코드가 작성되며, DB와 연결하는 코드도 JSP 파일 안에서 모두 작성 - 분리되어 있지 않기 때문에 소규모 프로젝트에는 어울리는 방식이지만 가독성이 떨어지고 분업과 유지보수가 좋지 않으므로 규모가 커지면 불편해짐 Model1 방식- b.jsp에서 DAO()의 메소드를 호출함으로써 자바 코드가 섞이게 됨 - 하지만 선언은 분리되어 JAVA 파일에 구현되어 있으므로 JSP 내의 JAVA 코드의 양이 굉장히 줄어들게 됨 - 페이지가 확장될수록 유지보수가 상대적으로 좋지 않음 Model2 방식- a.jsp에서 다음 페이지로 이동하기 전에 필요한 비즈니스 로직(처리를 담당하는 곳)을 b.java..

    [JSP] EL문과 JSTL문

    - 라이브러리로 자바 구문을 만들어 놓고 필요할 때마다 꺼내 쓰면 되기 때문에 유지보수에 편하다. - JSP 페이지 내에서 자바 코드와 HTML 코드(태그 형태)가 섞여 있으면 가독성이 떨어진다. - EL문과 JSTL문을 사용하면 HTML과 태그 형태로만 구성된 일관된 소스코드를 볼 수 있다. 1. EL문 - Expression Language - 값을 간결하고 간편하게 출력(표현)할 수 있도록 해주는 언어 - EL 문은 ${} 안에 있는 변수는 필드를 찾아오는 게 아니라 getter를 찾아가는 것이다. - 그래서 우리가 만드는 객체를 사용하고 싶으면 setter, getter로 해야 한다. JSP(자바) EL ${name} * setAttribute를 할 수 있는 4가지 ① pageContext : 현..

    [JSP] MyBatis

    1. MyBatis - 모델(객체)과 DB(테이블)의 매개체 역할의 프레임워크 - ORM(Object Relational Mapping) - Java 소스코드 안에 SQL문을 작성하면 코드가 길어지고 섞여 있어서 유지보수 및 분업이 어려움 - MyBatis는 기존 JDBC 방식과는 달리 SQL문을 XML 파일에 작성함으로써 코드가 줄어지고 SQL문 수정이 편함 - 또한 DBCP를 사용하여 커넥션을 여러개 생성하기 때문에 JDBC만 사용하는 것보다 작업 효율과 가독성이 좋아짐 iBatis(jdk 1.4이상부터 지원) -> MyBatis(jdk 1.5이상부터 지원) - iBatis와 MyBatis의 차이점은 몇 개의 문법 및 사용용어(명칭, 단어) 변경 등이 있음 MyBatis 설치 https://blog...

    [JSP] 회원가입 유효성 검사, 비밀번호(정규식) 검사

    1. 회원가입 유효성 검사 - 회원가입을 위해 다양한 유효성 검사가 존재하며, 유효성 검사는 JavaScript로 하기 때문에 양이 많아지면 태그가 너무 길어지게 된다. - 그래서 외부 js 파일을 만들어 사용하는 것이 좋다. - 여기서 다룰 것은 유효성 검사에 관한 함수만 다룰 것이다. - 중복 검사는 Ajax를 이용해서 하였고 우편번호 찾기는 API를 이용함 - onsubmit 제출을 할 때마다 유효성 검사를 하기 위해 사용 2. 아이디 유효성 검사 - 아이디 유효성 검사로는 아예 작성을 안 했을 때, 글자 수, 중복 검사를 안 했을 때, 중복되었는데도 가입하려 했을 때이다. 3. 비밀번호 유효성 검사 - 비밀번호 유효성 검사로는 아예 작성을 안 했을 때, 글자 수, 정규식을 이용한 포함되어 있는 문..

    [JSP] 다양한 세션 이용

    - 회원가입, 로그인 등등 자신의 상태 정보를 저장하거나 정보를 전달해야 하는 경우가 있다. - 이럴 때 세션이나 쿠키를 사용하면 되는데, 세션을 사용할 때 단순히 정보를 전달할 때 사용하는 경우라면 세션 삭제를 꼭 해주어야 한다. * 세션 복습 // 세션 생성, 값은 문자열, 객체 뭐가 되도 무관 session.setAttribute("키","값"); // 세션 키에 맞는 값 반환 session.getAttibute("키"); // 키에 맞는 세션 삭제 session.removeAttribute("키"); // 모든 세션 삭제 session.invalidate(); 1. 회원가입 후 세션 이용 - 회원가입을 성공을 하고 로그인 페이지에 갔을 때 방금 회원가입 한 아이디를 아이디 창에 채워 넣는다. 2...