본문 바로가기

전체 글117

23/11/09 Servlet (gpt의 답변) Servlet은 Java 웹 애플리케이션의 구성 요소 중 하나로, 클라이언트의 요청을 처리하고 응답을 생성하는 Java 클래스 * 서블릿은 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램 * 웹 요청과 응답을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다. * 예를들어보면 클라가 로그인 하려고 아이디,비번 보냈을때 서버는 컨트롤러,서비스에 있는 메소드로 클라가 보낸 아이디,비번 확인후 응답해준다. 동작 과정 1. 클라이언트 요청 2. HttpServletRequest, HttpServletResponse 객체 생성 3. Web.xml이 어느 서블릿에 대해 요청한 것인지 탐색 4. 해당하는 서블릿에서 service() 메소드 호출 5. doGet(.. 2023. 11. 9.
23/11/08 1.ServletRequest , HTTPServletRequest 차이 *[ServletRequest] - ServletRequest는 클라이언트의 요청에 대한 모든 HTTP 요청 정보를 담고 있는 인터페이스다. - 서블릿 컨테이너가 클라이언트의 요청에 대한 정보를 수신하면,그 정보를 담고 있는 객체가 ServletRequest를 구현한 객체로 생성된다. *[HTTPServletRequest] - HttpServletRequest는 ServletRequest 인터페이스의 하위 인터페이스이다.(상속) - HTTP Header, 쿼리 매개변수, 세션 정보 등에 접근할 수 있는 메서드들을 제공한다. ServletRequest 큰범위의 처리 할때, HTTPServletRequest 는 작은 범위인 자세한 정보.. 2023. 11. 8.
Spring_3주차-(1) 1. Bean을 수동으로 등록 * Bean을 자동말고 수동으로 등록은 언제 사용되나? -> 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋다. * 수동등록된 Bean에서 문제가 발생했을 때 해당 위치를 파악하기 쉽다는 장점이 있다. * 사용방법 예시를 보면 - config 패키지 생성후 PasswordConfig 클래스 생성 - bean으로 등록하고자하는 객체를 반환하는 메소드를 선언하고 메소드 위에 @Bean 설정 - bean을 등록하는 메소드가 속한 해당 클래스에 @Configuration을 설정 - 이러면 Spring 서버가 뜰 때 Spring IoC 컨테이너에 'Bean'으로 저장된다.↓ (PasswordEncoder passwordEncoder = pas.. 2023. 11. 7.
23/11/06 1. 개인 과제 구조 설계만 마치고 일단 깃허브랑 연결하려고 깃허브에서 레포지토리 새로 만들고 Readme파일도 같이 동시에 생성했다. 그후에 이제 리모트 설정하고 푸쉬하려했는데 이런 오류가 나왔다. 알아보니 깃허브에서 Readme파일을 만들었지만 내 로컬에는 Readme파일이 없어서 오류였다. 그래서 풀 해오고 푸쉬 하려했는데 이번엔 풀할때 저런 오류가 또 나왔다... 해결 방법은 git pull origin 브랜치명 --allow-unrelated-histories 이고 이 오류의 원인 알아보니 ->리모트에서 레포지토리 생성할때 같이 Readme파일 생성하면서 해서 새로운 커밋 이력이 생기는데 이 상태에서 로컬에 있는 걸 푸시할 경우 로컬에는 리모트의 커밋 이력이 없으므로 이 에러가 발생이였다 2023. 11. 5.
Spring_2주차-(2) 1. 영속성 컨텍스트 * Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간이다. * 오른쪽 캡처를 보면 개발자들은 EntityManager를 사용해서 Entity를 저장하고 조회하고 수정하고 삭제할 수 있다. * EntityManager는 EntityManagerFactory를 통해 생성하여 사용할 수 있는데 EntityManagerFactory를 만들기 위해서는 DB에 대한 정보를 전달해야한다. * 정보를 전달하기 위해서는 /resources/META-INF/ 위치에 persistence.xml 파일을 만들어 정보를 넣어두면된다. (아래 예시는 스프링환경이 아니고 자바환경에서 하는중) * 코드에 화살표 부분에 이름은 보통 프로젝트나 클래스 명으로 하는게 좋긴하다. * 이제 실행 코드 부분.. 2023. 11. 2.
Spring_2주차-(1) 1. IoC(제어의 역전), DI(의존성 주입) *주입은 필드에 직접,메소드,생성자 형식으로 있는데 주로 생성자 주입을 사용한다. -왼쪽부터 차례대로 생성자,직접,메소드 방식 *제어의 역전은 왼쪽 코드 보면 Consumer가 직접 Food를 만들어 먹었기 때문에 새로운 Food인 피자를 만들려면 피자 자체를 새로 만들고 Consumer에도 추가해줘야해서 여러곳의 코드 변경,추가가 필요하다. * 이를 해결하기 위해 만들어진 Food를 Consumer에게 전달해주는 식으로 변경함으로써 Consumer는 추가적인 요리준비(코드변경) 없이 어느 Food가 되었든지 전부 먹을 수 있게 됬다. * 해결전에는 제어의 흐름이 Consumer → Food 였는데 이후에는 Food → Consumer 로 역전 되었다. 2.. 2023. 11. 2.