목록분류 전체보기 (45)
일상기록

변수(Variable)란 수학에선 변수를 변하는 수로 정의 하지만, 프로그래밍언어의 변수(Variable)란, 값을 저장할 수 있는 메모리 공간을 말한다. 이 공간에 저장된 값은 변경될 수 있기 때문에 '변수'라는 수학용어의 정의와 상통하는 면이 있어 변수라 붙어졌다. 변수란, 단 하나의 값을 저장할 수 있는 메모리 공간. 하나의 변수에 단 하나의 값만 저장할 수 있으므로 새로운 값을 저장하면 기존의 값은 사라진다. 선언과 초기화 변수를 사용하려면 먼저 변수를 선언해야 하는데 변수 선언방법은 아래와 같다. int age; // age라는 이름의 변수를 선언 int : 변수타입, age : 변수이름 '변수타입'은 변수에 저장될 값이 어떤 타입(Type)인지를 지정하는 것이다. 저장하고자하는 값의 종류에 맞..
Java OOP 정리 1. 은닉성(캡슐화) private : getter, setter ex) get()호출시 암호화가 필요한경우가 생길경우 메소드안에서 수정 (보안성) protected : (같은 Package, Superclass(상위클래스), Subclass(하위클래스)) 상위클래스(부모)가 하위클래스(자식)에게만 공유하고싶을 경우 public : 어디서든 2. 상속 유전의 개념으로 생각하면 쉽다. 부모

@ComponentScan으로 @Component 설정이 되어 있는 클래스를 찾아서 읽어낸다. @Configuration @ComponentScan( // @Configuration 가붙은 @Component를 가지고 있으므로 해서 자동등록 된다. 그걸 막아주는것 기존에 예제코드를 살리기위해 설정 excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig {} RateDiscountPolicy, MemberServiceImpl, MemoryMemberRepository, OrderServiceImpl에 @Component를 추가시 빈을..

공유필드(클래스 전연변수)사용시 값이 공유되어 덮어써지는 문제가 발생하게 된다. 자기자신(자기클래스내)에서 발생시 쉽게 찾아낼 수 있지만 복잡한 상속관계에 있는경우 찾기 힘들어진다. 특히 금액 관련된 이슈가 발생시 문제는 심각해 진다. 예시를 만들어 보면 public class StatefulService { private int price; // 상태를 유지하는 필드 public void order (String name, int price){ System.out.println("name = " + name + "price" + price); this.price = price; // order() 인자값에 따라 price변수가 바뀜 } public int getPrice(){ return price; ..

싱글톤 패턴 하나의 객체(bean)만 생성해서 사용하는 디자인 패턴이다. 기존에 일반코드이다. appConfig에서 MemberService를 생성하는 memberService()가 있다. @Test @DisplayName("스프링 없는 순수 DI컨테이너") void pureContainer(){ AppConfig appConfig = new AppConfig(); MemberService memberService1 = appConfig.memberService(); MemberService memberService2 = appConfig.memberService(); System.out.println("memberService1 = " + memberService1); System.out.println..

자바 String에 대하여 개발직군 면접중 받은 질문이다. 가, 나, 다, 라, ... 하 까지 문자를 하나씩 for문 으로 더해가면서 문자열로 만드려고 한다. String과 StringBuffer중 어떤거로 만드려고하는지와 근거는 무엇인가? 기존에 알고 있던 기본지식은 다음과 같다 String은 문자를 추가, 삭제할 시 주소값이 계속해서 바뀌게 된다. 그에 반해 StringBuffer, StringBuilder는 아래와 같이 StringBuilder sbd = new StringBuilder(); StringBuffer sbf = new StringBuffer(); 객체를 생성한후에 append, delete로 추가, 삭제 하므로 주소값이 일정하다. String str = "String"; String..