본문 바로가기

728x90

java

(14)
[JAVA] String, StringBuffer, StringBuilder 의 차이점 이번 주제는 자주 사용하는 클래스인 String, StringBuffer 그리고 익숙하지는 않지만 중요한 StringBuilder 클래스에 대해서 알아보고자 한다. | String Java 코딩을 하다보면, String 클래스를 사용하는데 문자열을 추가하고 할때 String s1 ="text" + " good"'; 이런식으로 "+" 연산자를 이용하여 문자열을 더한다. 하지만 메모리를 효율적으로 사용하고자 할때, 고민을 하고 사용해야 한다. 그 이유를 설명하자면 다음과 같다. 이렇게 코딩이 되어있다면 당연히 결과는 "안녕하세요 반가워요"라고 콘솔에 출력할 것이다. 그렇다면 메모리구조는 어떻게 될까? public class Main { public static void main(String[] args) {..
[JAVA] 추상클래스(Abstract Class) * 추상메서드 - 추상메소드란 선언은 되어 있으나 코드가 구현되어 있지 않은 껍데기만 있는 메소드이다. * 추상클래스 : 추상클래스는 추상 메서드가 하나라도 있으면 그 클래스는 추상클래스가 된다. (만드는 2가지 방법 ) 1) 추상 메소드를 포함하는 클래스 2) 추상 메소드가 없지만 abstract(예약어)로 선언한 클래스 * 추상 클래스는 객체를 생성할 수 없다. 응용프로그램은 추상 클래스의 객체(인스턴스)를 생성할 수 없다. 추상클래스는 본래 객체를 생성할 목적으로 만드는 클래스가 아니다. 추상 클래스에는 실행 코드가 없는 미완성 상태인 추상 메소드가 있을 수 있기 때문에, 추상 클래스의 객체를 생성하는 코드에는 컴파일 오류가 발생한다. 컴파일 오류 , 추상 클래스의 객체를 생성할 수 없다. 그러나,..
[JAVA 디자인 패턴] 싱글톤 패턴 (Singleton Pattern) * 싱글톤 패턴 (Singleton pattern) 싱글턴 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하도록 하고, 어디서든 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴이다. 이를 구현하고자, 생성자를 외부에서 호출할 수 없게 만들기 위해 생성자를 private하게 만든다. 이 패턴은 Database에 접근하고자 DAO객체를 만들때이고, Spring framework 에서 Bean을 만들때 기본적으로 Singleton으로 만들도록 하는 데 쓰인다. 그렇다면, 싱글톤을 안쓸때의 문제와 써야 하는 상황을 Printer관리자를 만드는 것을 예를 들어 설명해보겠다. 사무실에 Printer가 하나가 있고, 여기에 접근하려는 사용자가 여러명이 있는 상황이다. 이런 경우 Printer 객체는 단 하나만 존..
[JAVA 디자인 패턴] 커맨드 패턴 (Command Pattern) * 커맨드 패턴 (Command pattern) 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다. * 커맨드 패턴이 왜 필요한지에 대해서 알아보자. 눌리면 특정 기능을 수행하는 버튼을 생각해보자. 버튼 눌렸을때 불이 켜지는 프로그램을 개발하려면, 버튼을 눌려졌음을 인식하는 Button 클래스, 불을 켜는 기능을 하는 Lamp 클래스, 버튼을 눌렸을 댸 램프를 켜려면, Button 클래스는 Lamp 객체를 참조 해야 한다. 이 버튼을 만들고자 한다면 이렇게 만들 수 있을 것이다. class Lamp{ public void turnOn() { System.out.println("La..
[Spring Framework] 02. DI(Dependency injection) 2.1 DI와 IoC IoC : Inversion of Control 제어의 역전, 프로그램을 제어하는 패턴 중 하나 - DI는 IoC패턴을 구현하는 방법 중 하나이다. - DI에 따라 프로그램의 흐름이 완전히 변경됨. DI : Dependency injection - 스프링 Container에 만들어둔 각종 클래스(bean) 들은 서로 의존적이다. ex) a 객체가 b 객체 없이 동작을 못함 => 스프링 프레임워크는 DI를 기준으로 많은 프레임워크 모듈이 만들어짐. 예시) 배터리에 의존해서 장남감을 만들었다 배터리 일체형 장난감 - 배터리가 떨어지면 장난감을 새로 구입해야됨. 배터리 분리형 장난감 - 배터리가 떨어지면 배터리만 교체하면됨. 배터리 탈부착형 장난감 - 배터리가 떨어지면 배터리만 교체하면됨..
[Spring Framework] 01. Spring과 maven의 이해 1.1 스프링 프레임워크 개요 - 프레임워크 : 기본뼈대. 방향성을 제시하고 원하는 기능을 빠르게 만들 수 있음. - 스프링 프레임워크는 DI, AOP, MVC, JDBC등을 제공한다. - 모듈 : 라이브러리, 프레임워크안에 미리 만들어져 있는 기능n 1.2 스프링 프레임워크 특징 1) POJO(Plain Old Java Object) 기반의 프레임워크 자바 객체의 라이프사이클을 스프링 컨테이너가 직접 관리하며, 스프링 컨테이너로부터 필요한 객체를 얻어올 수 있다. 2) DI(Dependency Injection) 을 지원 각 계층이나 서비스 들 사이 또는 객체들 사이에 의존성이 존재할 경우 스프링 프레임워크가 서로를 연결시켜준다. -> 클래스들 사이에 약한 결합을 가능하게 해줌. 3) AOP(Aspec..

728x90