본문 바로가기

전체 글107

[CS 면접 기본 - 자바] 13. SOLID 원칙에 대해서 말해줘 SOLID 원칙은 객체 지향 프로그래밍에서 소프트웨어 디자인을 개선하고 유지보수를 용이하게 하기 위해 제안된 다섯 가지 원칙입니다. SOLID는 다음의 다섯 가지 원칙의 머리글자를 따서 만든 약어입니다:S - Single Responsibility Principle (SRP):단일 책임 원칙: 클래스는 하나의 책임만 가져야 하며, 그 책임을 완전히 캡슐화해야 합니다. 즉, 클래스가 변경될 이유는 오직 하나뿐이어야 한다는 원칙입니다. 이렇게 하면 클래스가 변경될 때, 그 클래스의 다른 부분에 영향을 주지 않아 코드의 유지보수가 용이해집니다.O - Open/Closed Principle (OCP):개방-폐쇄 원칙: 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 열려 있어야 하고, 수정에 대해.. 2024. 10. 27.
[CS 면접 기본 - 자바] 12. Check 예외, unCheck 예외에 대해서 말해줘 체크 예외 (Checked Exception):컴파일 타임에 검사되며, 반드시 처리해야 함. 반드시 처리해야 하는 예외입니다. 이러한 예외는 메서드 선언에서 throws 키워드를 사용하여 선언해야한다체크 예외는 반드시 try-catch 블록을 사용하여 처리해야 하거나, 메서드에서 throws 키워드를 통해 다시 던져야 합니다.예: IOException, SQLException언체크 예외 (Unchecked Exception):런타임에 발생하며, 컴파일 타임에 검사되지 않음.예: NullPointerException, ArrayIndexOutOfBoundsException이러한 예외들은 프로그래밍에서 발생할 수 있는 다양한 오류를 처리하는 방법을 제공하여, 보다 안정적인 소프트웨어를 개발할 수 있도록 도와.. 2024. 10. 27.
[CS 면접 기본 - 자바] 11. JDK , JRE , JVM에 대해서 알려줘 1. JRE (Java Runtime Environment)JRE는 자바 프로그램을 실행하기 위한 환경입니다.**JVM (Java Virtual Machine)**과 라이브러리 클래스, 기타 자바 애플리케이션을 실행하기 위한 필수 구성 요소를 포함하고 있습니다.구성 요소:JVM (Java Virtual Machine): 자바 바이트코드를 실행하는 역할을 함.클래스 라이브러리: 자바 애플리케이션에서 사용하는 표준 라이브러리.클래스 로더: 자바 클래스 파일을 JVM에 로드하는 역할.2. JDK (Java Development Kit)JDK는 자바 애플리케이션을 개발하고 실행하기 위한 도구와 라이브러리를 제공합니다.JRE를 포함하고 있으며, 그 외에 컴파일러(javac), 디버거(jdb), 아카이버(jar) .. 2024. 10. 27.
[CS 면접 기본 - 자바] 10. JVM에 대해서 알려줘 jvm : 가비지 컬랙터 / 실행엔진 / 클래스 로더 / 메모리(runtime data area) 4가지 영역으로 이뤄짐.  자바 어플리케이션 실행 방법  MAC WIN 위에 자바가 미리 짜놓고 그 위에 사용자가 짤 수 있도록 해놓음  MAC, WIN 위에 자바가 미리 짜놓은 곳이 JVM이라고 한다.  그 위에서 공통된 자바소스를 짜면,  환경에 영향을 받지 않는다.  java -컴파일 -> 클래스 파일  여기가 바이트 코드다.  이거를 JVM이 읽어서, class loader를 통해 자바의 메모리  (Runtime Data area)올리고, 실행엔진이 동작시킨다.  정리) 컴파일러가 java를 클래스 파일로 바꾸는데 이 바꾼코드를 바이트 코드라고 합니다. 이 바이트 코드는 JVM의 클래스 로더를 통해서.. 2024. 10. 27.
[CS 면접 기본 - 자바] 9. 인터페이스와 추상클래스의 차이가 뭘까? - 추상 클래스 : abstract로 지시자로 정의되며, 추상메소드가 하나이상 포함 (상속을 위한 것)  => 강아지와 고양이를 예로 공통점은 짖는다는 특징 :   => 차이점은 짖는 소리가 다르다.   => 짖는 소리에 대한 정의는 Dog 객체, Cat 객체 다르게 해주어야하기 때문에, 동물이라는 추상클래스를 만들고, 거기에 공통 특징은 일반메소드로 구현하고  차이점은 추상 메소드로 정의만 한 뒤, 상속 받은 자식 클래스가 구체적인 구현을 맡긴다.    - 인터페이스 : interface 지시자로 정의하며 모든 메소드가 추상메소드로 정의(보장을 위한 것) 인터페이스는 정의만 넣어두고 각 클래스는 그 기능을 구현하도록 강제한다. 다중 상속이 가능하다. interface swim, fly 등 다중으로 상속.. 2024. 10. 27.
[CS 면접 기본 - 자바] 8. 자바의 버전은 무슨 차이가 있을까? Java 8: 함수형 프로그래밍, Stream API, 새로운 날짜/시간 API, Optional 클래스 도입.Java 11: 장기 지원 버전으로 HTTP Client API, String 메서드 개선, 오래된 기능 제거.  LTS  버전 2014, 2018녀에 출시,  1) 람다 표현식을 사용함.int plus(int a) { return a = a+3; }  = (a) -> {a+3}2)  STREAM : 병열처리 지원 for문, while 문 대신STREAM() , filter를 사용하여서 반복문을 처리해서 속도가 더 빨라지게 됩니다. (병열처리라 조금 더 빠르게 처리가 된다.)  3) 인터페이스 :  3) 인터페이스 기능 의 개선 - default  매소드 정의가 가능해짐. 원래는 추상 매소드만 .. 2024. 10. 27.