본문 바로가기

자바6

[MVC 패턴] MVC 기본 기능 로깅 (Logging) 운영 시스템에서는 System.out.println() 보다는 별도의 로깅 라이브러리를 사용해 로그를 출력한다. 로그 선언 방법 (3가지) private Logger log = LoggerFactory.getLogger(getClass()); private static final Logger log = LoggerFactory.getLogger(Xxx.class) @Slf4j //Lombok 사용 로그 호출 방법 log.info("hello") log.info("info log={}", name); 로그 사용시 장점 - 쓰레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있다. - 로그 레벨에 따라 개발 서버에서는 모든 로그를 출력하고, 운영서버.. 2023. 8. 15.
[MVC 패턴] 서블릿 (Servlet) @ServletComponentScan @SpringBootApplication public class ServletApplication{ public static void main(String[] args){ SpringApplication.run(ServletApplication.class, args); } } 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan을 지원한다. package hello.servlet.basic; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import jav.. 2023. 8. 8.
[Spring 기본] 스프링 컨테이너/스프링 빈 (Spring Container/Bean) 스프링 컨테이너: 스프링 컨테이너는 스프링 빈의 생명 주기를 관리하며, 생성된 스프링 빈들에게 추가적인 기능을 제공하는 역할을 한다. IoC와 DI의 원리가 스프링 컨테이너에 적용된다. 개발자는 new 연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체를 생성하고 소멸하지만, 스프링 컨테이너를 사용하면 해당 역할을 대신해 준다. 즉, 제어 흐름을 외부에서 관리하고, 객체들 간의 의존 관계를 스프링 컨테이너가 런타임 과정에서 알아서 만들어 준다. 스프링 빈: 스프링 컨테이너에 의해 관리되는 자바 객체(POJO)를 의미한다. 스프링 컨테이너 XML 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있음 ex) ApplicationContext, BeanFactory ● 스프링 컨테이너.. 2023. 8. 2.
[Spring 기본] SOLID원칙과 IoC, DI ■ 좋은 객체 지향 설계 5가지 원칙 (SOLID) SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Listov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존 역전 원칙 코드 작성시 발생하는 DIP 문제 예시 클라이언트 코드 OrderServiceImpl 은 DiscountPolicy의 인터페이스 뿐만 아니라 구체 클래스도 함께 의존 → 이를 해결하기 위함이 관심사 분리 → 애플리케이션의 전체 동작 방식을 구성(config).. 2023. 7. 31.
[Algorithm] 구간 합 (Prefix Sum) 구간 합 (Prefix Sum) ■ 정의 - 수들의 나열에서 특정 구간의 합을 의미 - 보통 1차원 배열에서 인덱스 사이의 값들의 합을 구하는데 사용 ■ 구간 합 알고리즘 - 구간 합 공식: sum[j] - sum[i - 1] // i에서 j까지의 구간 합 - 합 배열(P)을 미리 계산해 두면 구간 합은 한 번에 계산 가능 - 알고리즘의 시간복잡도: O(1) ■ Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class No11659 { public static void main(String[] args) .. 2023. 5. 1.
[JAVA] EOF (End Of File) ■ 정의 - EOF(End Of File)란 컴퓨팅에서 파일의 끝(End of FIle)을 나타내며 데이터 소스로부터 더이상 읽을 수 있는 데이터가 없을 때 반복문을 종료 - Ctrl + Z를 누르면 동작 ■ 종류 자바에서는 대표적인 입력 클래스로 Scanner, BufferedReader가 있음 ■ 사용 예 Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){//입력데이터 문자열 sc.nextLine(); } while(sc.hasNextInt()){//입력데이터 숫자 sc.nextInt(); } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWr.. 2023. 1. 28.