목록공부공부 (33)
이숭간 공부기록
인터페이스란? 기본설계도 추상메서드와 상수만 가지며, 데이터를 저장하지않는 개발코드와 객체의 통신접점을 의미한다. interface키워드로 선언되며 인터페이스는 다중상속이 가능하다 인터페이스의 구현 인터페이스의 모든 추상메소드를 구현한 구현클래스를 작성한다. implements키워드를 사용해서 구현한다. 만약 구현하는 인터페이스가 어떤 상위 인터페이스를 상속하고 있는경우 구현클래스는 상위인터페이스의 모든 추상메소드까지 전부 구현해야한다. //추상체 public interface Login { void login(); } //구현체 public class KakaoLogin implements Login{ @Override public void login(){ System.out.println("카카오로 ..
자바의 String, StringBuilder, StringBuffer에 최대한 깊게 알아보자! Constant pool 자바 클래스 파일 구성항목중 하나인 Constant pool은 리터럴 상수값을 저장하는 곳이다. 문자열뿐만 아니라, 모든종류의 숫자, 문자열, 식별자이름등에 대한 인덱스를 번호로 제공한다. 즉, 런타임시점에 "hello"의 리터럴을 사용하는 메소드를 여러번 호출한다해도 새로운 메모리공간을 할당하는것이 아니라, Constant pool의 인덱스를 참조한다. 단, Constant Pool은 클래스단위로 관리되기때문에 같은 리터럴이라 하더라도 서로다른 클래스에서 등장한다면 다른 인덱스값을 갖는다. 정리 : CP를 사용해 이미 존재하는 문자열의 경우, 똑같은 문자열을 갖는 새로운 메모리공간을..
우선 엄연하게 말한다면 자바의 동작방식은 Call by Value이다. 이는 주소(레퍼런스)를 하나의 값으로 보기 때문이다. 자세히 알아보자 Call by Value(값에 의한 호출) 함수가 호출될 때, 메모리공간에서 함수를 위한 별도의 임시공간이 생성된다. (메모리 스택공간) 함수 호출시 인자로 전달되는 변수의 값(메모리에 저장되어있는)을 복사하여 함수의 인자로 전달한다. 복사된 인자는 로컬변수의 특성을 갖는다. 함수안에서 값이 변경되어도 외부 변수값은 변경되지 않는다. Call by Reference(참조에 의한 호출) 함수가 호출될 때, 메모리공간에서 함수를 위한 별도의 임시공간이 생성된다. (메모리 스택공간) 함수 호출시 인자로 전달되는 변수의 레퍼런스를 전달한다. 함수에서 인자값이 변경되면 레퍼..
DataSource란? DB와 관계된 커넥션 정보를 담고있으며 빈으로 등록하여 인자로 넘겨준다. → 이 과정을 통해 Spring은 DataSource로 DB와의 연결을 획득한다. DB 서버와의 연결을 해준다. DB Connetion pooling기능 종류 : JDBC Driver vendor(MySQL, Oracle)별로 여러가지가 존재한다. DataSource를 설정하고 빈에등록, 주입하는 방법 DB와의 연결을 위해 **DB서버 정보(Property)**를 설정한다. (하드코딩을 피하기위해 파일로 설정 → 이곳에서만 수정하면 다른 모든부분에 변경내용이 적용되므로 이렇게 하는것이 좋다.) 설정한 property file을 통해 DataSource를 빈으로 등록한다. Spring JDBC를 이용하려면 DB..
추상클래스와 인터페이스는 둘다 다형성을 구현하는데 쓰인다는 공통점이 있지만 개념적으로 차이가 있다. 상속은 "같은 종류의 하위 클래스를 만드는 기술"이라면 인터페이스는 "사용방법이 동일한 클래스를 만드는 기술" 이라는 점에서 차이가 있다. 추상클래스란? 미완성 설계도 abstract 키워드로 선언된 클래스 추상메서드를 최소 한개 이상 가진다. 추상메서드가 없어도 abstract키워드로 선언된 클래스면 추상클래스이다. 추상클래스의 구현 서브(자식)클래스에서 슈퍼(부모)클래스의 모든 추상 메서드를 오버라이딩하여 실행가능한 코드로 구현한다. 추상클래스의 목적 상속을 위한 클래스로, 객체생성을 위한 클래스가 아니다. 단지 여러 클래스의 공통된 부분을 추상화(추출)하여 상속받는 클래스에게 구현을 강제하기 위한것 ..
Bean에 대한 개념적 설명은 아래글을 참고해주세요! https://esoongan.tistory.com/85?category=915638 [Spring] 스프링 빈(Bean)이란? atoz-develop.tistory.com/entry/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B9%88Bean%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%83%9D%EC%84%B1-%EC%9B%90%EB%A6%AC [Spring] 스프링 빈(Bean)의 개념과 생성 원리.. esoongan.tistory.com @Component @ComponentScan의 대상이 되는 어노테이션으로, 스프링 컨테이너의 관리대상이되고 빈으로 등록된다. @Service, @Cont..