목록분류 전체보기 (150)
forDevLife
- 이 에러는 포트 8080을 다른 쪽에서 사용하고 있다 그런 에러입니다. 1. 더블클릭 -> 톰캣 열기 2. http/1.1 부분만 8080 -> 8090으로 바꾸고 저장 & 실행
1. SQL - DML(select, insert, update, delete) -> 데이터 조작어(Data Manipulation Language) : SELECT - 검색 : INSERT - 등록 : UPDATE - 수정 : DELETE - 삭제 1) SELECT : 컬럼에 대한 alias(별칭)을 부여해서 나타내는 컬럼의 Heading 변경 가능 ex) select name as 이름, job as 직업 from employee; -> employee 테이블에서 name을 이름으로, job을 직업으로 변경 출력 - 컬럼의 합성 기능(Concatenation) -> 문자열 결합 함수 concat 사용 - 중복행 제거 기능 by distinct -> 중복 내용 없애서 출력 - 오름차순 정렬 : 맨 뒤에..
1. MySQL의 구조 - 데이터를 최종적으로 저장하는 곳 : 표(table) - 표가 매우 많아짐(글 저장 표, 댓글 표, 회원정보 저장 표 .... ) -> 나눠진 표들을 잘 정리해야 할 필요 생김(file에서의 디렉토리 처럼) - 연관된 표를 그룹화한 폴더 : 데이터베이스(database) = 스키마(schema) - 스키마들의 집합 : 데이터베이스 서버(database server)에 저장 2. MySQL 스키마의 사용 - 명령어 하나하나를 뭐 외울필요는 없다. 구글링 필수 - SHOW DATABASE : 데이터 베이스 항목 나열 - USE opentutorials : 해당 데이터베이스로 변경 3. SQL과 테이블 구조 - SQL : Structured Query Language -> Struct..
1. DataBase2 - MySQL 강의 소개 - 1970년 -. ibm에서 Relational Database 출시 -. 표의 형태로 정리정돈할 수 있으며, 정렬 / 검색 기능을 빠르고 안전하게 할 수 있다. - MySQL -. 웹의 폭발적 수요로 데이터베이스 필요 -. 무료로 풀린 MySQL이 웹과 함께 폭발적인 동반 성장 -. 이를 이용해서, 뒤죽박죽 데이터를 한번 정리해보자. 2. 데이터베이스의 목적 - SpreadSheet vs Database(MySQL)를 비교해보자. - 공통점 : 표로 표현, 정렬 / 검색 기능도 거의 비슷하다. - 차이점 : SpreadSheet : 마우스로 클릭 클릭 / 데이터베이스 : 컴퓨터 언어(SQL)로 제어 가능 - 데이터베이스에 있는 정보를 웹사이트에 접속해서..
1. 데이터베이스의 본질 - 복잡한 것은, 데이터 관련해서 할 수 있는 기능들이 매우 많기 때문이다. - 아무리 복잡한 기술도, 중심에 자리잡은 기술은 어렵지 않다. - 데이터 베이스의 핵심은, 입력과 출력 파악이다. -> 이를 파악하면, 데이터 베이스의 반은 아는 것임 - 이 4가지 작업이 핵심 - CRUD 2. file vs Database - Database2(MySQL, MongoDB) 등을 배우기 전에 이들이 공통적으로 사용할 예제에 대해 배워보자. - 가장 간단한 저장방법인 file이 어떻게 Database 화 되어가는지! - 다음과 같이 파일이 정리가 되어있을 경우를 가정. - 문서로 관리될 경우, 내가 원하는 정보를 찾기가 매우 제한적이다. find 기능이 있으나 찾는 과정에서 많은 노이즈..
1. hashCode() - 객체의 해시 코드를 반환하는 메서드 - Object 클래스의 hashCode()는 객체의 주소를 int로 변환해서(만들어서) 반환 public class Object { ... public native int hashCode(); -> native 메서드(OS가 가지고 있는 메서드 - 주로 c로 작성) -> 내용이 없음. 이미 작성되어있는 메서드를 사용함. 내용을 볼 수가 없다. -> 객체마다 항상 다른 값이 나온다 = 객체의 지문 - equals() (-> iv)로 작업를 오버라이딩 하면, hashCode()도 오버라이딩해야 함. -> 둘 다 객체 주소로 작업 - equals의 결과가 true인 두 객체의 해시코드는 같아야 하기 때문! + 참고 : System.identit..
new 조상클래스 혹은 구현 인터페이스 이름() { //멤버 선언 } - 말 그대로 이름이 없는 일회용 클래스. 딱 한번 인스턴스 만들고 끝냄 - 이름이 없으므로 조상 / 인터페이스 이름을 쓴다. - 클래스 정의 + 생성을 동시에 한다. package com; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Ex14_0 { public static void main(String[] args) { Button b = new Button("Start"); b.addActionListener(new EventHandler()); } } class EventHandler i..
- 인터페이스에 디폴트 메서드, static 메서드 추가 가능(JDK 1.8 부터) +tmi : java.util.Collection 인터페이스와 관련된 static 메서드들이, 기존에 인터페이스에는 추상 메서드만 들어가야 한다는 조건 때문에 Collections 클래스로 들어가게 되었다. -. 접근 제어자는 항상 public, 따라서 오버라이딩 시 public으로 써줘야 한다. 아무것도 안쓰면 default -> 더 좁은 범위라 허용 안됨. -. 인터페이스는 추상 메서드 집합 -. 만약 새로운 메서드 추가하고 싶음 -> 추상 메서드를 추가한다는 의미 -. 하지만, 이렇게 된다면, 기존에 이 인터페이스를 구현했던 클래스들이 모두 새로운 메서드를 구현해야 함.. very bad -> default 메서드로..
- cmd + shift + enter : 문장 어지간하면 끝까지 완성해줌 (;까지) - cmd + n : getter / setter / constructor 등 - Shift F6 : 복사 후 겹치는 이름 변경, 클래스 이름 위에서 클래스 이름 변경 - Option + cmd + v : 해당 메서드의 반환값을 자동으로 완성해 줌 - ctrl + t -> extract method를 통해 지정한 부분을 메서드로 추출 - cmd + shift + t -> create new test -> test library : Junit을 통해 테스트를 자동으로 만들어 준다. - ctrl + option + o -> 안쓰는 import 제거(optimize import) - cmd + p -> parameter in..
1. AOP가 필요한 상황 - 모든 메서드의 호출 시간 측정 필요한 상황 - 핵심 로직이 아님에도, 너무 귀찮게 하나하나 하기 어렵다.(메서드가 천개라면, 위에 시간 측정을 다 붙여야 함..) - AOP가 필요한 시점임.. 2. AOP 적용 - 관점 지향 프로그래밍 - 공통 / 핵심 사항 분리 - 시간 측정 로직을, 원하는 곳에 적용하기 - 변경사항이 있으면, 이 로직만 변경하면 됨 - @Around를 통해, 원하는 적용 대상 선택 가능 - 메서드 실행 시, TimeTraceAop가 한번 intercept하여 실행 후, 메서드 실행됨 1) AOP 적용 전 의존 관계 2) AOP 적용 후 의존관계 - 가짜 멤버서비스(프록시)를 만들어 내어, 앞에 세워 둠 - joinPoint.proceed()에서 실제 서..