본문 바로가기

분류 전체보기

(197)
커넥션 풀 (DBCP) * 커넥션 풀 (DBCP) - 오라클 접속 권한을 얻기 위한 환경 설정 - 접속 인원이 많은 웹 페이지에서 데이터베이스의 효율성과 속도를 높이기 위해서 사용 - 미리 대기타고 있는 풀이 많기 때문에, 클라이언트가 접속을 할 때마다 DB에 연결을 시도할 경우에 비해 부하가 적음 - 커넥션 객체를 모아두고 재활용하는 방법 - 풀에서 커넥션을 가져온다 -> 커넥션을 사용한다 -> 풀에 커넥션을 반납한다 * DBCP 설치하기 (아파치에서 얻어오기) 1) ojdbc6.jar 파일 lib 폴더 아래에 넣기 2) servers 폴더의 server.xml 파일에서 진행하는 프로젝트 태그 안에 태그 추가 - 세부 내용은 내 상황에 따라 변경하기 - 태그가 안보이면 프로젝트에 파일 하나 만들어서 실행하고면 이클립스가 자동..
[JSP] JDBC - INSERT / PreparedStatement * PreparedStatement 인터페이스 - Statement의 단점을 극복한 더욱 편리하고 효율적인 객체 - preparedStatement는 미리 컴파일된 SQL문을 가지고 있다가 동적으로 컬럼의 값을 채워 질의문을 던지도록 함 - 매번 바뀔 데이터가 들어갈 자리는 '?'로 표시하는데 동적으로 값을 할당할 때 여기에 채워짐 1) PreparedStatement 생성 String sql = "insert into member values(?, ?, ?, ?, ?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); - 바인드 변수 ? --> 값이 변경될 수 있기 때문에 미리 정해 놓지 않음 2) 바인드 변수로 지정된 매개 변수에 값 설정 pst..
Java 기초 * 스프링, 이클립스, IntelliJ 모두 자바 언어로 만들어진 애플리케이션 * 객체지향 언어 (그 밖에 c++, python, javascript...) * 자바 가상 머신 (Java Virtual Machine)- 자바를 실행하기 위한 가상 컴퓨터 (=소프트웨어라고 할 수 있음)- 프로그램이 실행되기 위해서는 JVM을 꼭 거친다- JVM은 OS마다 다르게 생겨서 자바 코드를 다양한 OS에서 수정 없이 사용 가능- 한 번 작성하면, 어디서든 실행 (=어떤 OS에서든 코드의 수정 없이 사용 가능하다) 1. 메모리 관리 2. GC 3. JAVA와 OS사이에서 OS가 구애받지 않고 재사용을 가능하게 하는 스택기반 가상머신 * .java 파일을 컴파일하면 .class가 되잖아. cmd창에서 클래스 파일을 실..
equals()와 hashCode() equals()와 hashCode()란? 두 메서드는 Object 클래스에 정의되어있다. 따라서 어떤 객체라도 equals()와 hashCode() 메서드를 사용할 수 있다. 어떤 객체가 논리적으로도, 물리적으로도 완전히 동일한지 확인할 때 사용된다. 자바에서의 동일성은 equals()의 반환 값이 true이고 hashCode()의 반환값이 같다면, 두 객체는 완전히 동일하다고 판단한다. 하지만, 둘 중 하나라도 다르다면 동일한 객체가 아니므로 정확성을 위해 두 메서드를 함께 오버라이딩(재정의)하는 것이 좋다. equals() 두 객체의 내용이 같은지 확인하는 메서드 - 기본 동작 '==' 와 같이 객체의 주소값을 비교하여, 주소값이 같다면 true, 다르다면 false 반환 -오버라이드 목적 물리적으로..
AOP란? * AOP (Aspect Oriented Programming) - 관점 지향 프로그래밍 - OOP(객체지향 프로그래밍)는 대규모 프로그래밍 개발에 적합하기는 했지만 여전히 중복 작성되는 코드가 생길 수 밖에 없는 구조 -> 이를 해소하기 위해 AOP라는 개념이 스프링에 도입. 아래의 예를 살펴보자. 예시 1) class Log { public void log() { system.out.println("접속 완료"); } } // log() 메서드를 가진 Log() 클래스 이 클래스의 메서드를 다른 클래스에서 사용하려면, 상속을 통해 구현해줘야 함. class Start1 extends Log { public void log() { log(); // 메서드를 따로 호출하지 않아도 상속만 하면 자동으로 실..
게시판 - 게시글 수정 1. IBoardDAO 인터페이스 / BoardMapper.xml 구현 2. IBoardService 인터페이스 / BoardService 클래스 구현 3. HomeController 작성 4. JSP 파일 작성
게시판 - 게시글 삭제 1. IBoardDAO 인터페이스 / BoardMapper.xml 구현 2. IBoardService 인터페이스 / BoardService 구현 3. BoardController 작성 4. JSP 파일 작성 이번 경우에는 delete 구문은 따로 화면이 필요하지 않다. 내부 로직으로 로그인한 회원의 이름과 게시글 작성자의 이름이 일치하면, 삭제 버튼 클릭만으로도 삭제가 이루어지게 구현했기 때문이다. 삭제가 정상적으로 이루어지면, 게시물 목록으로 이동된다.
게시판 - 게시글 조회 1. IBoardDAO 인터페이스 / BoardMapper.xml 구현 - getBoardList() : 게시물 전체 목록 조회 - getBoardContent() : 한 개의 게시물 상세 조회 2. IBoardService 인터페이스 / BoardService 구현 3. BoardController 작성 - 게시물 관련 컨트롤러에서는 로그인 여부를 매번 체크해줘야함 4. JSP 파일 작성 1) 게시물 전체 목록 조회 * 경로 확인하는 방법 1. 컨트롤러에서 원하는 페이지의 value 값을 확인한다 -> board/detail/{boardnum} 2. 상세정보 3. " " 안에 그대로 넣는다고 생각하고 넣기, 그리고 나서 생각해보자. 4. board는 같은 경로니까 빼주고, {boardnum} 부분에 대..