면접을 위한 Java등 기본 정리2
예외
예외란 에러의 한 종류로,
프로그램이 종료되지 않고 계속 진행될 수 있도록 처리 가능한 가벼운 오류
오류에는 Error와 Exception이 있다.
Error: 프로그램을 종료시켜야 하는 치명적인 오류
Exception : 프로그램이 종료되지 않고 계속 진행될 수 있게 처리 가능한 오류
エラー : プルグラムが終了(しゅうりょう)しなければならない致命的問題
例外:プルグラムが終了しなくて進行ができるように処理ができる問題
Exception 안에 있는 RuntimeException.
RuntimeException 안에 있는 IndexOutOfBoundsException
배열이나 변수가 허용할 수 있는 범위나 길이를 초과한 것
NullPointerException
ArithmeticException : int에서 0으로 나누려는 행동(double형은 괜찮음)
>빈번하게 나오지는 않으나 그래도 알아두면 좋을 듯?
throw와 throws
throw : 일부러 에러를 발생(파이썬에서는 raise)
*
Thread란 무엇인가?
CPU가 독립적으로 처리하는 하나의 작업 단위.
하나의 Program에 하나의 프로세스, 하나의 Process에 한 개 이상의 Thread가 존재함.
Java에서 Thread를 사용한다는 것은, Multi-Thread를 의미함.(동시작업)
ThreadはCPUが独立てきに処理する一つの作業単位(たんい)。
ひとつのプルグラムに1つのプロセス、1つのプロセスに1つ以上のThreadが存在する。
JavaでThreadを使うの意味は、Multi-Threadを意味する。
1) Thread의 Life Cycle
2) Thread의 Synchronized
3) Thread 간의 Communication
*
http://www.tcpschool.com/java/java_io_stream
Stream이란?
입력과 출력을 할 때 완충역할을 하는 중간 매개자 역할을 함.
入力(にゅうりょく)と出力(しゅつりょく)をする時、Bufferの役割ををする。(つまり、中間媒介者)
byte 기반 byte 基盤(きばん) byte 단위로, 파일출력 byte単位で、ファイル出力(しゅつりょく) |
char 기반 char 基盤 문자단위로 文字単位で |
|
입력 스트림 | InputStream | Reader |
출력 스트림 | OutputStream | Writer |
*
객체 직렬화(Object Serializable)
オブジェクト シリアライズ
객체를 byte 기반의 데이터로 읽고 쓰는 기술
즉 객체 안에 여러 (흩어진) 정보가 있는데 그것을 한 줄로 정리했다는 것.
オブジェクトをbyte基盤(きばん)のデータで読み書きする技術。
つまり、オブジェクトの中に様々な情報があるので、それをまとめたということ。
GET / POST
GET : Query String を使用して、”?key=value&key2=value2&..”の 形で使用します。
URLで見えるので保安の問題があるデータはPOSTを使う方がいいです。
2,083字の限界があります。
POST :データをbodyのなかに入れて送ること。
文字の長さの限界がありません。
Session / Cookie
httpは持続的(じぞくてき)な連結(れんけつ)のためにCookieとSessionを利用する
Session:HostのサーバのWAS(WebApplication Server)でオブジェクトの形で貯蔵(ちょぞう)する。
作ったSession別にSessionIDが作って、これはCookieの形で貯蔵する。
Cookie:ClientのパソコンなどでSaveする。Cookieはドメイン別にCookieファイルが作ります。
ServletとJSPに関して説明してください。
Java를 이용한 웹애플리케이션을 만들기 위한 것.
(Servlet=Server+Javaを利用したプルグラム)
1)
ServletとJSPはControllerの役割をする。
2)
ServletはJavaコードの中でHTMLがある
JSPはHTMLコードの中でJAVAがある
Servlet
Javaを使って動的(どうてき)なWebApplicationを作る技術。
Javaクラスの中でHTMLコードの入れる
Multi-Thread方式(ほうしき)でサービスする。
JSP(Java Server Page)
HTMLの文章の中でJAVAコードを入れる方式。
Serviceをする前にServletで変換(へんかん)する。
Spring Framework란?
Java Enterprise Application 開発を優しくてすることができる
軽い(かるい)水準(すいじゅん)のアプリケーションフレームワーク
light-weight frameworkは 90年代(ねんだい)の末に
複雑な環境と ハードウェア的な 構成(こうせい)が 必要な Framework に反対する概念
(Python의 경우 Django, Flask, FastAPI 등등 굉장히 많다.
Java는 Spring과 Spring-boot 외에는 거의 다 죽었다.)
Spring Frameworkの長所(ちょうしょ)
1)軽いフレームワーク
2)POJO(Plain-Oriented-Java-Object)基盤(きばん)
3)WASに従属(じゅうぞく)していない開発環境:tomcatだけではなく、ほかのWASでも開発できる。
4)プロジェクトの全体構造(こうぞう)設計ができる
AOP(Aspect-Oriented-Programming, 관점 지향 프로그래밍)
시스템의 요구사항을,
핵심 관심사항(核心 関心事項) = 종단 관심사항(핵심 비즈니스 로직)과
횡단 관심사항(横断 関心事項) = (공통 비즈니스 로직)으로 분할 및 개발, 통합하여
모듈화를 극대화하는 개발방법.
システムの必要な部分を、
核心関心事項(核心ビジネスロジック)=終端関心事項(核心ビジネスロジック)と
横断関心事項(横断的なビジネスロジック)=(共通のビジネスロジック)に分割·開発·統合し、
モジュール化を極大化(きょくだいか)する開発方法。
배경 : 핵심관심 + 횡단 관심 > 가독성 저하, 재사용 한계, 환경변화대응 한계
> 관심사 분리(AOP)で解決!
예)
핵심 관심사항 : 이체, 잔액 조회
횡단 관심사항 : 로깅, 인증, 예외처리, 즉 핵심관심사항을 처리하는데 관련된 공통업무.
의존성 주입(DI: Dependency Injection)
https://mangkyu.tistory.com/150
プログラミングで構成(こうせい)していることの間に
依存(いぞん)関係がコードの中ではなく、
外の設定(せってい)ファイルなどを通じて定義されるデザインパターン。
장점
- 결합도를 낮추고 코드 재사용성을 높인다.
- 유지보수가 용이해진다.
주입패턴
- 생성자 주입
- setter를 통한 주입
- interface를 통한 주입
- Annotation을 통한 주입
제어의 역전(Inversion of Control, IoC)
https://steady-coding.tistory.com/458
- 프로그램의 제어 흐름을 프로그램 내부에서 관리하는 것이 아니라 외부에서 관리한다는 것.
***********개발방법론***************
*** 프레임워크에 대해 설명하세요
(라이브러리와 프레임워크를 비교해서 설명하세요.)
> 코드 흐름의 제어권이 누구에게 있는가?
나에게 있다면 라이브러리, 아니면 프레임워크
> 내가 사용한 라이브러리 : Spring, Mybatis
내가 이전에 라이브러리를 사용하지 않았을 떄 : JSP, JDBC
라이브러리 : 개발에 필요한 함수나 도구를 모아둔 곳
프레임워크 : 프로그램 개발에 있어 '틀'을 제공하는 것. 그렇기에 이 안에는 도구가 들어 있다. 각종 다양한 함수, 상수, 변수, 설정파일 등.
성격이 비슷하나 차이점이 존재한다.
공통점 : 두개 다 도구모음이다.
차이점 :
라이브러리 - 내가 작성하는 코드 안에 들어가서 내가 주도가 가능(ex: JQuery)
프레임워크 - 프레임워크가 제시한 방향에 따라서만 작성이 가능함.
그렇기에 프레임워크가 요구하는 설정파일 등이 있어야 한다.
フレームワークとライブラリは道具集(どうぐしゅう)だ。
でも、
ライブラリ:自分が作成するコードの中に入って私がコントロールができる(ex:JQuery)
フレームワーク:フレームワークが提示(ていじ)する方向(ほうこう)によって作成する特徴(とくちょう)がある。それで、フレームワークが要求(ようきゅう)する設定(せってい)ファイルが必要です。
JAVA에는 JDBC라는 게 존재한다. Java로 DB를 컨트롤하는 것.
'Computer Language > Others' 카테고리의 다른 글
면접을 위한 Java등 기본 정리 (0) | 2022.05.09 |
---|---|
기타자료 (0) | 2021.09.07 |