분류 전체보기

    [Spring] 스프링 vs 스프링 부트

    스프링의 특징 의존성 주입(DI; Dependency Injection) 제어역전(IOC; Inversion Of Control) 관점지향 프로그래밍(AOP; Aspect Oriented Programming) → 느슨한 결합을 달성 : 단위테스트가 용이 DI (의존성 주입) 클래스 내부에서 객체를 선언하고, @Autowired @Service 어노테이션을 통해 선언된 객체의 인스턴스를 획득하는 것 IOC (제어 역전) 객체에 대한 제어권이 컨테이너로 이전된다 AOP (관점 지향 프로그래밍) OOP를 보완하는 수단, 재사용 유지보수가 용이하다는 장점. 기존 프로젝트의 로직 수정없이 기능 추가가 가능 스프링은 다양한 기능을 지원하고 있지만 기능을 사용하기 위해 설정할 것이 많다. 스프링부트에서는 AutoC..

    [Today I Learn] 2022.05.02

    TIL 스프링 vs 스프링부트 정리 세션 : 연결성 유지. 클라이언트는 서버에 원하는 응답을 요청한다. 서버는 수많은 클라이언트 중 응답을 요청한 클라이언트에게 필요한 응답을 전달하기 위해 해당 클라이언트의 정보를 일정기간 담고 있어야 한다. 클라이언트가 브라우저를 끄지 않는 이상 세션 정보를 계속 받을 수 있다 (브라우저를 끄지 않은 상태에서 새창을 열면 계속 유지됨. 브라우저를 끄면 세션이 끊김) What I did 회원로그인 기능 만들기 Memo 이번주 목표 : 페이징, 파일 업로드, 회원로그인 기능 구현 DB부분에서 오류가 생겨서 강사님께 도움을 요청해야 함..

    [Today I Learn] 2022.04.30

    TIL h / j / k / l : 방향키, 좌 / 하 / 상 / 우 y : 드래그 영역 지정 w/e : 다음 단어 이동 / 다음 단어 끝으로 이동 v : 드래그 영역 지정 d : 삭제 - dd : 현재 행 삭제, 3dd : 3개 행 삭제, dw : 단어에서 커서 이후의 부분 삭제 y : 복사 p : 붙여넣기 a / i : 커서 뒤에 입력 / 커서 앞에 입력 x : backspace o / O : 아래 행에 삽입 / 위 행에 삽입 What I did Vim 사용법 연습 스프링 입문 강의 : 회원 서비스 테스트 Memo 익히면 높은 효율을 자랑한다고 하니 연습 중이긴 한데, 초심자인 나에게 너무 어렵게 느껴진다. vim 사용법 가이드 https://docs.google.com/document/d/1H49V..

    [Today I Learn] 2022.04.29

    TIL jsp reply매서드를 작성하면서 sql쿼리 2개(sql1, sql2)를 동시에 적용시켜야했다. 이때, conn.setAutoCommit(false)를 통해서 sql1, sql2 중 한개만 정상적으로 작동되어 commit되는 것을 방지할 수 있다. 트랜잭션 : 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 : 원자성, 일관성, 독립성, 지속성 ex) sql1, sql2를 묶어 하나의 트랜잭션으로 작동시킴 spring 스프링의 controller - @GetMapping("hello-mvc")는 localhost8080/hello-mvc일 때 작동한다. @GetMapping ~ return "hello-template" : templates의 hello-template.html에 정보..

    [Today I Learn] 2022.04.28

    TIL JSP # BoardController 클래스 BoardDAO bd = new BoardDAO(); BoardVo bv = bd.boardSelectOne(bidx_); //ArrayList alist = bd.boardSelectAll(); //int value = bd.insertBoard(subject, content, writer, ip, midx); request.setAttribute("bv", bv); // setAttribute : bv의 값을 "bv"로 전송함 ~ # boardDeleteAction.jsp BoardVo bv = (BoardVo)request.getAttribute("bv"); // getAttribute : "bv"로 전송된 값을 가져옴 request.setAtt..

    [Today I Learn] 2022.04.27

    TIL XSS 스크립팅 공격, 공격 방지를 위한 코드 작성 What I did 게시판 수정 코드 작성 : Modify.do, ModifyAction.do 나동빈 JSP 게시판 만들기 : #15강(1차 완강) 김영한 스프링 입문 #1강 Memo Todo : JSP 게시판 코드 복습 & 정리 → git 코드 작성할 때 신중을 기하자. 오타로 인해서 소모되는 시간이 너무 크다. unreachable 에러를 해결하긴 했는데, 어떻게 해결했지 알 수가 없다.. 에러가 발생했을 때 기록하자.

    [Today I Learn] 2022.04.26

    TIL 오류가 발생하면 StackTrace부터 꼼꼼히 읽도록 하자. 마저 읽지 못한 부분에서 해결방법이 자세하게 안내되어 있었다. What I did 나동빈 JSP 강의평가 웹 사이트 개발 #13 #14 계층형 게시판 Memo

    [Today I Learn] 2022.04.25

    TIL unreachable code 오류 수정 친구 코드를 보면서 해결했다. 원인은 찾을 수 없었고, 이클립스 자체의 오류로 추정됨. 바로 위에 있는 return을 지우면 된다는 의견도 검색할 수 있지만 내 경우는 영향이 없었다. 버튼을 눌렀을 때 데이터 전송이 안될 때 직접적으로 관여하는 'action' 키워드를 중점적으로 오류를 찾아볼 것 What I did 나동빈 JSP 게시판 만들기 #11강 학원 수업 : JSP - 계층형 게시판 구조 작성, JAVA - 자바 예외 처리

    [JAVA] Collection Framework

    제네릭 하나의 참조형이 아닌 여러 참조 자료형으로 사용할 수 있도록 프로그래밍하는 것 제네릭 메서드 : 메서드 선언부나 메서드의 매개변수로 자료형 매개변수 T를 사용한 메서드 제네릭은 여러 참조 자료형이 쓰일 수 있는 곳에 특정한 자료형을 지정하지 않고, 클래스나 메서드를 정의한 후 사용하는 시점에 어떤 자료형을 사용할 것인지 지정하는 방식이다 자료형 매개변수는 T외에 다른 문자도 사용이 가능하다 참조 자료형이 변환될 때 검증을 컴파일러가 하므로 안정적이고 형 변환 코드가 줄어드는 특징이 있다 자료형을 명시하지 않고 사용할 수 있다(그러나 참조 자료형을 지정하는 것을 권유) extends 예약어를 사용 : 제네릭 클래스에서 T자료형에 사용할 자료형을 제한할 수 있다 cf. 어떤 변수가 여러 참조 자료형을..

    Model 1 vs Model 2, MVC 구조

    모델 1 뷰와 로직을 모두 JSP 페이지 하나에서 처리하는 구조 단순한 구조가 장점인 반면, 규모가 커질수록 코드가 복잡해진다. 모델 2 뷰와 로직, 컨트롤러로 기능을 구분하여 처리하는 구조 클라이언트의 요청이 들어오면 컨트롤러가 요청에 대한 로직 흐름을 제어한다. 규모가 커지더라도 유지 보수가 용이하다. MVC 구조 JSP 모델 2 역할 Model Service class, JavaBean 비즈니스 영역의 로직을 처리한다 View JSP 클라이언트에게 보여지는 화면이다. 요청된 결과를 출력하거나 컨트롤러에 요청을 보내기도 한다 Controller Servlet MVC 구조의 흐름을 제어한다 * 포워드(forward) : 컨트롤러에서 요청받은 데이터를 뷰에 넘겨주는 것