면접을 위한 Java등 기본 정리2

2022. 5. 11. 15:47

예외

 

예외란 에러의 한 종류로,

프로그램이 종료되지 않고 계속 진행될 수 있도록 처리 가능한 가벼운 오류

 

오류에는 ErrorException이 있다.

Error: 프로그램을 종료시켜야 하는 치명적인 오류

Exception : 프로그램이 종료되지 않고 계속 진행될 수 있게 처리 가능한 오류

 

エラー : プルグラムが終了(しゅうりょう)しなければならない致命的問題

例外:プルグラムが終了しなくて進行ができるように処理ができる問題

 

Exception 안에 있는 RuntimeException.

RuntimeException 안에 있는 IndexOutOfBoundsException

배열이나 변수가 허용할 수 있는 범위나 길이를 초과한 것

NullPointerException

ArithmeticException : int에서 0으로 나누려는 행동(double형은 괜찮음)

 

>빈번하게 나오지는 않으나 그래도 알아두면 좋을 듯?

 

throwthrows

throw : 일부러 에러를 발생(파이썬에서는 raise)

 

 

*

 

Thread란 무엇인가?

CPU가 독립적으로 처리하는 하나의 작업 단위.

하나의 Program에 하나의 프로세스, 하나의 Process에 한 개 이상의 Thread가 존재함.

Java에서 Thread를 사용한다는 것은, Multi-Thread를 의미함.(동시작업)

 

ThreadはCPUが独立てきに処理する一つの作業単位(たんい)。

ひとつのプルグラムに1つのプロセス、1つのプロセスに1つ以上のThreadが存在する。

JavaでThreadを使うの意味は、Multi-Threadを意味する。

 

1) ThreadLife Cycle

2) ThreadSynchronized

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基盤(きばん)のデータで読み書きする技術。

つまり、オブジェクトの中に様々な情報があるので、それをまとめたということ。

 
* 프로그램 기본 개념 *
 
인터넷이란? INTERconnected NETwork로,
                 네트워크와 네트워크의 집합체, 전 세계 네트워크를 하나로 묶어놓은 것.

 

Internetはネットワークとネットワークの集合体(しゅうごうたい)。
全世界のネットワークを一つにまとめたもの。
1969년 미국방부 산하 연구기관인 ARPA의 연구용 네트워크 ARPANET에서 유래
(1982년 TCP/IP프로토콜 개발되면서 인터넷이라는 용어가 처음 사용됨.)
 
웹(Web)의 구조.

 

webの構造(こうぞう)
요청 > HTTP > 응답
SYN > HTTP > ACK
[URL형식] 프로토콜:IP:포트번호
(ex: http://128.0.0.1:8888/hi)
(ex: http://localhost:8888/hi)
 

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

BELATED ARTICLES

more