Programming 90

[Spring] BeanDefinition

[Spring] 스프링 빈 조회 스프링 빈을 조회하는 다양한 방법에 대해 코드로 살펴보자. * BeanFactory BeanFactory는 스프링 컨테이너의 최상위 인터페이스 스프링 빈을 관리하고 조회하는 역할을 담당한다. getBean() 메서드를 제 supreme-ys.tistory.com 이 전 포스팅에 대한 답에 대한 포스팅이다. 스프링은 xml이나 annotation을 통해 빈을 등록할 수 있다. 빈을 등록할 때 스프링은 어떤 구조로 되어있길래 종류에 상관없이 빈을 등록할 수 있는지가 질문이었다. 그에 대한 답은 BeanDefinition에서 찾을 수 있다. BeanDefinition은 추상화이다. 역할과 구현을 개념적으로 나눈 것인데, BeanDefinition은 Xml을 읽거나, 자바 코드를..

Programming/Spring 2022.02.07

[Spring] 스프링 빈 조회

스프링 빈을 조회하는 다양한 방법에 대해 코드로 살펴보자. * BeanFactory BeanFactory는 스프링 컨테이너의 최상위 인터페이스 스프링 빈을 관리하고 조회하는 역할을 담당한다. getBean() 메서드를 제공한다. * ApplicationContext BeanFactory의 기능을 모두 상속받아서 사용한다. ApplicationContext가 BeanFactory를 상속받아서 사용한다면 그 둘의 차이에 대해 알아보자. ApplicationContext는 BeanFactory에서 제공하는 빈 관리, 조회 기능 뿐만 아니라 어플리케이션 개발에 필요한 부가 기능들을 제공한다. -> 국제화 기능, 환경 변수, 이벤트, 리소스 조회 등등! 즉, ApplicationContext = BeanFacto..

Programming/Spring 2022.02.07

[Spring] ApplicationContext, 스프링 컨테이너, 스프링 빈(Bean)

프로젝트를 제작하면서, 기존에 인X런에서 배웠던 내용들을 다시 리마인드하는 작업을 하고 있다. 이거 굉장히 좋은 학습 방법인 것 같다. 아주 착착 감긴다. 어떤 느낌이냐면, 흩어진 지식들을 연결하는 느낌이다. 하드 코딩으로 필요한 기능을 추추추추추추추가 하며 무슨 내용인지도 모르고 '그냥 기능만 잘 동작하면 되지' 라는 마인드로 개발을 진행했었다. 이 어노테이션(@)이 왜 쓰이고, 무엇 때문에 쓰이고 어느 부분에선 왜 이런 어노테이션이 쓰이는지 그 이유를 알 수 있는 공부 방법이라고 생각한다. 그래서 뿔뿔이 흩어져있는 지식들을 연결하기 위한 정리들을 시작하는 중이다. 그 첫 번째는 ApplicationContext이다. 스프링을 한 번이라도 접해봤다면 ApplicatioContext를 들어는 봤을 것이다..

Programming/Spring 2022.02.06

[TFAE] 맥북 자바 버전 확인 및 자바 버전 변경하는 법

맥북을 사용하다 보면, 프로젝트 시 조건에 따라 버전을 달리 설정해야 할 때가 있다. 그럴 때 맨날 구글링 하는 것도 좋지만, 내 것을 보는 것이 더 도움이 될 것 같아서 작성한다. * 설치된 자바 경로 확인 /Library/Java/JavaVirtualMachines/ * 현재 시스템 상에서 사용중인 자바 버전 확인 java -version * 자바 버전 변경을 하고 싶다? 변경하고자 하는 자바의 경로를 복사한다. Home에서 소스 파일을 연다. bash_profile 혹은 zshrc 파일 (bash_profile 과 zshrc의 차이점) $vi ~/.zshrc​ 터미널 내 zshrc파일에서 JAVA_HOME을 찾아 JAVA_HOME의 값을 1번에서 복사한 경로로 붙여넣는다. 문서 수정하려면 (I)를 ..

[백준] 2675번 : 문자열 반복 - JAVA [자바]

2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 메서드를 사용해서 구현해보겠다고. 까분 흔적 package Daily; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class P2675 { public static void main(String[] args) throws IOException { Buffere..

[JAVA STUDY] 9주차 : 예외처리

목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바의 정석을 기반으로 한 예외처리 학습 컴파일 에러 : 컴파일 할 때 발생하는 에러, 자바 컴파일러가 실행될 때 발생하는 에러, 실행할 수 없음 런타임 에러 : 실행할 때 발생하는 에러, 실행은 되나 프로그램이 죽는 경우 논리적 에러 : 작성 의도와 다르게 동작, 잘 동작은 하나 의도대로 동작하지 않는 경우 Java의 런타임 에러 종류 2 가지 에러는 어쩔 수 없지만, 예외는 처리하자! Erro..

Programming/Java 2021.11.29

[JAVA STUDY] 8주차 : 인터페이스

목표 자바의 인터페이스 학습하기 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 인터페이스를 작성하는 것은 클래스를 작성하는 것과 같다. 키워드로 interface를 사용한다. interface 인터페이스_명 { public static final 타입 상수명 = 값; public abstract 메서드명(매개변수); } 인터페이스 멤버들은 제약사항이 있다. 모든 멤버 변수는 public static final 이어야 하며, 이를 생략할 수 있다. 모..

Programming/Java 2021.11.23

[백준] 7568번 : 덩치 (Java)

7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다..

[JAVA STUDY] 7주차 : 패키지

목표 자바의 패키지에 대해 학습하세요. 학습할 것 package 키워드 import 키워드 클래스 패스 CLASSPATH 환경 변수 -classpath 옵션 접근지시자 Package 목적 어떤 기능들을 묶어서 용도나 목적에 맞춰서 분리 한 것을 의미한다. ArrayList 클래스는 java.util이라는 패키지 안에 있다. 자바에서 제공하는 유용한 도구들이 있는 패키지라고 이해할 수 있다. 따라서, 프로그램을 작성할 때, 기업의 고유정보등을 이용하여 패키지를 작성하면 클래스의 이름이 충돌하는 것을 방지할 수 있다. Package 작성 관례 클래스의 이름과 구분이 되도록 패키지의 이름은 전부 소문자. 인터넷 도메인 이름의 역순으로 패키지 이름을 구성. 패키지 이름의 끝에 클래스를 정의한 주체 또는 팀을 구..

Programming/Java 2021.11.15

[JAVA] 매개변수의 다형성

* 매개변수의 다형성 - 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다. * 장점 1. 다형적 매개변수 2. 하나의 배열로 여러종류 객체 다루기 1. 다형적 매개변수 - 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다. /* 다형성을 고려하지 않은 하드 코딩 */ class Product { int price; int bonusPoint; } class TV extends Product {} class Computer extends Product {} class Audio extends Product {} class Buyer { // 물건사는 사람 int money = 1000; // 소유금액 int bonusPoint = 0; // 보너스점..

Programming/Java 2021.11.09