반응형

우리가 부르는 통상적으로 부르는 '서버'는 두 가지로 나누어진다.

하나는 웹 서버 (Web Server) - WS

또 다른 하나는 웹 어플리케이션 서버(Web Application Server) - WAS 이다. 

 

일단 이렇게 웹 서버(WS)와 웹 어플리케이션 서버(WAS)로 나누어서 사용하는 이유는 효율성 때문이다.

웹 서버(WS)는 정적인 컨텐츠를 처리하며, 웹 어플리케이션 서버(WAS)는 주로 동적인 컨텐츠 처리를 담당하고 있다. 

그렇다면

 

정적인(Static) vs 동적인(Dynamic)


으로 나누어서 생각해보아야 한다.

 

정적인(Static)

일반적으로 이야기하는 정적(Static)의 의미는 만들어놓은 것 그대로 제공하는 것 자체를 정적이라 할 수 있다. 예를 들면, HTML 템플릿을 작성하고 홈페이지를 열어보면 이것 자체가 정적인 페이지가 되는 것이다. 정적인 웹사이트는 만들기 쉽기 때문에 처음에는 정적인 웹사이트를 만들어보며 사이트를 만든다.

( 다른 컴퓨터 혹은 클라이언트에서 접속해도 항상 같은 페이지를 보여주는 것을 정적 사이트라 한다.)

 

동적인(Dynamic)

동적의 의미는 상호작용을 통한 데이터 처리가 필요한 경우 동적인 페이지라 한다. 대표적으로 데이터베이스의 처리가 필요한 경우 '동적'이라는 말이 붙는다. (서버가 사용자의 '요청(Request)'에 따라 데이터를 가공처리한 뒤에 생성되어진 웹 페이지를 보여주는 것이다.)

 

 

웹 서버(Web Server)


웹 서버는 일반적으로 정적인 컨텐츠를 제공합니다.

  • 클라이언트가 요청한 정적인 컨텐츠를 HTTP를 통해 제공해주는 서버입니다. 
  • 클라이언트로부터 들어온 요청에 대해 사용자 인증을 처리하는 역할을 한다. 
  • 요청한 파일이 없거나 문제가 발생하면 특정한 코드 값을 전달해준다. (대표적으로 404)

404 error

 

그렇다면 여기서 의문이 하나 듭니다. 정적인 컨텐츠를 처리해준다면, 동적인 컨텐츠는 어떻게 처리해야할지 생각해야 합니다.  여기서 웹 서버의 다른 역할이 있습니다.

  • 동적인 요청 ( 예를 들면, 데이터베이스 쿼리문 처리 )가 들어오면 이 요청을 웹 서버에서는 처리가 불가능하므로 컨테이너(Container)에 보내주는 역할을 합니다. 

※ 웹 서버는 정적 처리만 하기 때문에, 웹 서버 혼자만은 처리가 불가능하므로 동적 처리를 위해 요청을 보내는 것이다. HTML 페이지 자체에서는 서버에 저장된 데이터를 가져오거나 저장하는 것이 불가능하므로 요청을 통해 데이터를 가져오거나 저장해야 한다.

 

웹 서버의 종류에는 NGINX, APACHE 등이 있습니다.

그렇다면 여기서 이야기하는 컨테이너(Container)란 무엇인가?

컨테이너는 서블릿의 생명 주기를 관리하고 JSP를 서블릿으로 변환하는 기능을 지닌 프로그램이다. 

(서블릿의 생명주기는 서블릿을 관리해주는 역할이라 생각하면 된다.)

Servelt Container 생명주기

 

컨테이너는 두 가지 종류가 있는데, 서블릿 컨테이너와 JSP 컨테이너가 있다.

(실상, 서블릿 컨테이너와 JSP 컨테이너는 같은 개념이다. JSP 자체가 PHP 처럼 스크립트 형식으로 동작하지 않고 서블릿으로 변경된 이후에 실행되기 때문이다. JSP를 서블릿으로 컴파일 해주는 것이 JSP엔진이다. 그런데 여기서 톰캣(TomCat)의 경우, 이러한 JSP엔진이 JSPServlet이다. JSP를 동작시켜주고 컴파일 하는 것이 JSPServlet이 담당하고 있으므로 어떠한 의미에서는 JSP컨테이너라고도 볼 수 있는 것이다.

 

  • 서블릿 : 서블릿은 자바로 구현된 CGI를 의미한다. [자바를 사용하여 웹 페이지를 동적으로 생상하는 서버 측 프로그램을 이미한다.]
  • CGI : 공용 게이트웨이 인터페이스 (Common Gateway Interface) 로 웹 서버와 프로그램 간의 교환방식을 의미한다. (정적 처리를 하는 웹 서버와 컨테이너를 연결하기 위한 통신 장치이다. 쉽게 생각해서 웹서버와 컨테이너 간의 통신을 도와주는 장치이다. )
  • JSP(Java Server Pages) : 자바 서버 페이지는 HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 서버 사이드 스크립트 언어이다. 

JSP의 기본적인 동작 구조는 클라이언트에서 서비스가 요청되면 JSP의 실행이 된다. JSP는 웹 어플리케이션 서버의 서블릿 컨테이너에서 서블릿 원시코드로 변환 → 서블릿 원시코드가 컴파일되어서 HTML 형태로 클라이언트에게 돌려준다.

 

※ 개인 홈페이지에서는 HTML, CSS, JavaScript만으로도 충분한 표현이 가능합니다. 하지만 요새는 트위터, 페이스북, 개인 쇼핑몰 운영 그리고 댓글이 달리는 기능이 있는 홈페이지와 같이 기능이 추가되어져서 웹 페이지를 만듭니다. 이러한 데이터는 데이터베이스 상에 저장되는데, HTML으로는 막대한 양의 데이터를 저장과 처리가 불가능하므로 이러한 데이터를 처리를 감당하기 위해 만들어진 곳이 동적 페이지 입니다. (대표적인 언어가 CGI, ASP, PHP, JSP 등이 있다.)

 

웹 어플리케이션 서버(Web Application Server)


웹 서버로부터 오는 동적인 요청을 처리하는 서버를 웹 어플리케이션 서버라 한다. 일반적으로 WAS라 한다.

위키백과에서 WAS는 이렇게 정의되고 있다. 인터넷 상의 HTTP를 통해 사용자 컴퓨터나 장치에 어플리케이션을 수행주는 미들웨어(소프트웨어 엔진)으로 볼 수 있다. 

WAS는 웹서버 + 컨테이너로 이루어진 서버라 생각하면 편하다.

[ko.wikipedia.org/wiki/%EC%9B%B9_%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98_%EC%84%9C%EB%B2%84]

 

웹 어플리케이션 서버 기능은

  • 프로그램 실행 환경과 데이터베이스 접속 기능을 제공
  • 여러 개의 트랜잭션을 관리
  • 업무를 처리하는 비즈니스 로직 수행

웹 어플리케이션의 종류는 아파치 톰캣, 제우스, 제티(Jetty), 레진(Resin) 등이 있다.

 

더욱 자세한 내용은

rrhh234cm.tistory.com/456

 

웹 어플리케이션 서버

웹 서버와 웹 애플리케이션 서버 구분 구분 역할 프로그램 명 웹 서버 웹 클라이언트의 요청을 받아서 요청을 처리하고, 그 결과를 웹 클라이언트에게 응답한다. 주로 정적 페이지인 HTML, 이미지

rrhh234cm.tistory.com

gmlwjd9405.github.io/2018/10/29/web-application-structure.html

 

[Web] web.xml 설정 내용, 역할 및 간단한 예시 이해하기 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

developer.mozilla.org/ko/docs/Learn/Common_questions/What_is_a_web_server

 

웹 서버란 무엇일까? - Web 개발 학습하기 | MDN

웹 서버란 무엇일까? Jump to sectionJump to section"Web server"는 하드웨어, 소프트웨어 혹은 두 개가 같이 동작하는 것을 의미할 수 있습니다.  하드웨어 측면에서, web server는 web server의 소프트웨어와 we

developer.mozilla.org

를 참조하도록 하자.

반응형
반응형

영어 문장의 기본 형식인 1형식부터 5형식까지 보어가 필요한 곳은 

2형식 문장 [S + V + S.C] - 주격보어가 필요

5형식 문장 [S + V + O + O.C] - 목적격 보어가 필요

이다.

 

근본적으로 보어는 '의미를 보충해주는 말'이다.

 


※ 많이 헤깔리는 것 중 하나가 품사 vs 문장의 성분 을 혼동해서 사용되는 경우가 있는데 주의하자.

[품사 : 명사, 대명사, 동사, 형용사, 부사 등과 같이 단어를 기능 및 형태의 의미에 따라 나눈 것]

[문장 성분 : 주어, 서술어, 목적어, 보어, 부사 등 문장을 구성하는 기능적 단위를 의미한다.]

 

품사는 '단어'로써 나뉘어지는 것 

문장 성분은 '문장을 구성하는 기능적 단위'로 나누어진 것 

으로 이해해야 한다. 그래서 문장 성분에서 문장의 주어 역할을 하는 것, 부사 역할을 하는 수식어구 등으로 나누어서 설명하는 것이다. 

 


1. 주격 보어로 쓰이는 경우

그렇다면 to부정사와 동명사가 주어를 보충설명해주는 주격 보어로 쓰이는 상황에 대해 살펴보자.

일반적으로 주격 보어가 나오는 경우이면 2형식 문장인 [주어 + 동사 + 주격보어]에서 많이 쓰인다.

2형식 문장에서 많이 쓰이는 동사는 be동사의 형태이므로 be동사 뒤에 to부정사와 동명사가 주어를 설명하고 있으면

주격보어로 사용되고 있는 것이다.

 

예를 들어보로독 하자. 

i.e)

One of the best ways to hold yourself to a stduy schedule is to study in groups

그냥 보면 어려우므로 문장의 성분별로 자르자.

One of the best ways to hold yourself to a stduy schedule   is  to study in groups

주어 + 동사 + 보어의 형태로 나누어짐을 확인할 수 있다.

[공부 스케줄을 유지하는 가장 좋은 방법 중 하나 // 는 // 그룹으로 공부하는 것이다.]

 

여기서 보어로 쓰인  to study in groups 가 주어를 설명해주고 있는 상태다. 

to부정사 말고 동명사로 바꾸어서 다시 써보자면, studying in groups로 쓸 수 있다.

 

One of the best ways to hold yourself to a stduy schedule   is  studying in groups 

 

주격 보어에서 많이 혼동되는 것은 동명사와 현재 진행형으로 쓰여진 문장을 자주 헤깔린다.

예를 들어,

My hobby is playing tennis.  → My hobby == playing tennis 로써 주어와 보어와 같은 의미를 갖는다.

[내 취미는 테니스이다.]

I am playing a tennis with my son. 

→ am playing이라는 동사와 I가 같은 의미를 가지지 않는다. 내가 play를 하고 있을 뿐이다. 

[나는 아들과 함께 테니스를 하고 있다.]

 


2. 목적격보어로 사용되는 to부정사, (v-ing)현재분사, 동사원형, 과거분사(p.p)

주격보어와 비슷하게 목적격 보어도 목적어를 보충 설명한다. 그래서 목적어 뒤에 to부정사와 동사원형, (v-ing)현재분사가 오게 되면 목적격 보어로 사용되는 형태로 쓰이게 된다. 목적격 보어가 필요한 문장은 5형식 문장으로 [S + V + O + O.C]의 형태이다.


* 앞서 v-ing의 형태를 동명사라고 이야기했는데, 이제는 v-ing의 형태를 현재분사로 바꿔서 사용하고 있다.

동명사와 현재분사 모두 v-ing의 형태로 쓰인다. 하지만 문장 내에서 역할이 다르다.

 

동명사

동명사의 경우, 명사에 가깝다. 그래서 명사 역할만을 맡고 있다.

learning (배우는 것), reading(읽는 것), eating(먹는 것)

동사 자체는 행위를 나타내고 있지만 명사화해서 사용한다.

(동사는 움직이는 동영상이라면, 동명사는 한 장면에 대한 사진 같은 느낌이다. 혹은 행위에 대한 명사화라 볼 수 있다.)

일반적으로 해석은 '~하는 것', '~하기' 로 해석된다.

 

분사

분사는 두 가지 종류가 있다. 하나는 현재분사(-ing), 다른 하나는 과거분사(-ed)의 형태가 있다. 분사는 모두 형용사의 역할을 하며, 현재분사는 능동의 의미, 과거분사는 수동의 의미가 된다. 

일반적으로 해석은 '~은', '~는'으로 해석된다.

sleeping (잠자는), exciting (신나는)

의 느낌으로 해석된다. i.e.) sleeping cat (잠자는 고양이) , exciting travel (신나는 여행)

 


목적격보어로 사용할 수 있는 형태는 to부정사, 동사원형, v-ing(현재분사), p.p(과거분사)가 목적어를 보충 설명해주는 역할을 한다. 여기서 의미상 to부정사, 동사원형, v-ing(현재분사) // p.p(과거분사) 로 나뉜다.

 

to부정사, 동사원형, v-ing(현재분사) : 는 목적어 뒤에 사용되면서 목적어가 하는 행위 자체를 나타내는데 사용된다.

p.p(과거분사) : 목적어에게 보어에 해당하는 행위를 한 것으로 나타낸다.

 

목적격보어로 쓰는 to부정사

목적격 보어를 to부정사로 쓰이는 동사 : ask, advise, invite, want, allow, expect, promise, cause등이 있다.

The teacher advised me to study hard : 선생님은 나에게 열심히 공부하라고 충고했다. 

"me가 목적어로, 목적어에게 study하라고 하다" 로 해석된다. 

'목적어에게 목적격보어 하다' 가 해석방법이다. 

 

목적격보어로 쓰이는 동사원형과 v-ing(현재분사)

The movie made me happy : 그 영화는 나를 기쁘게 했다. 

'목적어'가 '목적격보어'하게 하다. 로 해석된다. 

 

*지각 동사( look, see, hear, smell 등)은 v-ing(현재분사)형태가 사용될 수도 있다.

Have you ever seen J.J riding a car : 너는 J.J가 차를 타는 것을 본적 있니?

 

목적격보어로 쓰이는 p.p(과거분사)

Atter the hurricane, father found his house destroyed. : 허리케인이 지난 이후에, 아버지는 자신의 집이 파괴된 것을 발견했다.

집이 파괴된 것 -> 집(목적어)가 파괴당했다. (목적격보어)

로 수동 관계처럼 해석된다. 

 

[have + O + C(p.p)] 의 형태는 문맥에 따라 해석되는 방향이 달라진다.

O가 C되도록 시키다. ( 사역의 의미로 사용되는 경우 )

O가 C를 당하게 되다. ( 수동의 의미로 사용되는 경우 )

 

여기서 사역이란 말을 풀어서 쓴다면 '시키다'라는 의미로 사용된다. 사역 동사는 내가 행위를 행하는 행위자가 아닌 것을 알려줄 때 사역동사를 사용한다. 

  • I had my car repaired : 나는 내 차를 수리했다. (차를 수리한 사람이 내가 아니라 다른 사람으로 하여금 수리를 받은 것이다. == 다른 사람을 시켜서 내 차를 수리한 것! )
  • I repaired my car : 나는 내 차를 수리했다. (이는 차를 내가 직접 수리한 것이다.)

이렇게 행위자가 누구인지를 확실하게 이야기하고자 사역의 의미를 사용하게 된다. 

 

I had my phone stolen yesterday : 어제 나는 핸드폰을 훔침을 당했다. (수동적의미로 핸드폰이 훔침을 당한 것이다.)

반응형
반응형

* 지난 시간에는 수동태에 대해 살펴보았다.

[중학영어] 07강. 수동태

 

[Chapter 4 - 동사의 태] 07강. 수동태

능동태와 수동태 · 능동태 능동 : 문장의 주어가 동사의 동작을 실행하는 것을 능동태라 한다. 그렇다면 이러한 능동태는 어떤 의미를 가지는가?         행위자가 대상에 동작을 행

studium-anywhere.tistory.com

 

우리가 일반적으로 주어 자리와 목적어 자리에는 명사가 와야한다.

하지만 간혹 문장마다 주어와 목적어 자리에 동사가 오는 경우가 분명히 존재한다. 

 

* 명사와 동사가 구분이 안 간다면 단어를 다시 외우는 것이 좋다. 문장을 분석하면서 단어가 주어인지 동사인지 하나하나 검색을 통해 찾아보며 머릿속으로 정리하는 것이 좋다. 2 ~ 3일 정도 시간을 들여 고생을 한 뒤에는 익숙해져서 동사인지 명사인지 구분하기 쉬워진다. 최소한 시간을 들여서 공부하겠다는 마인드로 미리 공부를 해두는 것이 좋다.

 

여기서이야기하는 to-v 의 형태는 to부정사

                       v-ing의 형태는 동명사로 이야기한다.

 

이번 시간에는 to부정사와 동명사에서는 명사역할을 하는 명사적 용법에 대해 알아보고자 한다.

[이외에는 형용사적 용법부사적 용법으로 나누어져 있다.]


그렇다면 to부정사와 동명사의 명사역할은 3가지로 나누어서 생각해볼 수 있다.

주어목적어 자리에 오는 명사가 와야하므로 주어 자리에 들어갈 형태와, 목적어 자리에 들어갈 형태로써 나누면 된다. 크게 나누면 주어와 목적어 자리에 들어갈 명사로 생각하면 되고 조금 더 세분화시켜서 

 

1. 주어에 들어갈 명사의 형태로 쓰이는 경우

2. 목적어에 들어갈 명사의 형태로 쓰이는 경우

3. 보어에 들어갈 명사의 형태로 쓰이는 경우 [주격 보어, 목적격 보어]

 

로 나눌 수 있다.

 

1. 주어자리에 쓰이는 to부정사와 동명사의 형태

To부정사

먼저, to부정사는 하나의 명사를 만들어주는 명사구 역할을 한다. 그래서 동사 앞에서 끊어서 읽어준다. 일반적으로 to부정사는 단수 취급이므로 그 뒤에 오는 문장의 동사는 단수 동사가 온다.

to부정사의 명사적 용법은 ~ 하는 것의 형태로 해석이 된다. 

 

* 여기서 나오는 것이 가주어 it이 나온다.

(to부정사는 대부분의 문장이 가주어it을 많이 쓴다. 동명사는 잘 안쓴다)

 

to부정사가 주어에 들어간 명사로 사용된 예 : To play game is difficult

to부정사가 가주어 It으로 쓰인 경우 : It is difficult to play game

 

위의 문장을 아래의 문장으로 바꾸어 보았다.

 

To play game is difficult

It is difficult to play game

 

이러한 형태로 바뀌게 된다. 일반적인 해석으로 ~하는 것으로 해석하면 된다.

그렇다면 해석은 "게임을 하는 것은 어렵다" 로 해석된다. 

 

i.e.)

To watch Tv is exciting

It is exciting to watch Tv

 

해석은 Tv를 보는 것은 즐겁다. 

 

이렇게 주어로 쓰일 경우 '~하는 것은(는)'으로 해석된다.

 

동명사

to부정사와 비슷하게 단수 취급을 하며 '~하는 것은(는)'으로 해석된다. 

 

i.e)

Eating Vitamin C is good for health

It is good for health eating Vitamin C

비타민C를 먹는 것은 건강에 좋다.

 

동명사에서도 to부정사와 비슷하게 가주어 it을 사용하는데, 동명사는 자주 사용되진 않는다. 

그런데 간혹 사용되는 경우도 있으므로 간략하게는 알아둬야 한다.

 

* to부정사와 동명사의 주어로 쓰이는 경우에 대해 살펴보았는데, 이는 

동사 eat (먹는다) -> Eating vitamin C ~ 으로 쓰이면서 '먹는 것' 이라는 명사의 느낌으로 바꾼 것이다. 

혹은 eat(먹는다) -> to eat (먹는 것) 으로 변환이 되어서 명사의 형태로 쓰이게 된다.

 


2. 목적어 자리에 쓰이는 to부정사와 동명사

목적어 자리에 쓰이는 to부정사와 동명사의 경우는 의미에 따라 차이가 존재한다.

통상적으로 to부정사는 '미래'의 의미가 담겨져 있다

그리고 동명사는 '현재'와 '과거'의 의미가 담겨져 있다.

 

I want to go school : 나는 학교 가는 것을 원한다. [want to -v : v하는 것을 원한다.]

I plan to go school : 나는 학교 가는 것을 계획하다. [plan to -v : v할 것을 계획하다.]

I hope to go school : 나는 학교 가는 것을 바라다. [hope to -v : v할 바라다]

I expect to go school : 나는 학교 가는 것을 기대하다. [expect to -v : v할 것을 기대하다.]

 

이런 느낌으로 사용된다. 앞으로의 기대와 미래의 의미를 지니고 있다. 

 

J.J give up studying a few years ago. : J.J는 공부하는 것을 포기했다. 몇 년 전에 [give up v-ing : v 하는 것을 포기하다.]

동명사의 경우 이런 느낌으로 현재와 과거의 의미를 가진다. 이러한 문장의 해석은 '~하는 것을', '~ 한 것을' 이라는 말로써 해석한다. 

 

간혹 to부정사와 동명사의 차이에 따라 뜻이 미묘하게 바뀌는 것이 존재한다.

 

i.e.) 

 

I forget to play next week.  → 다음주에 노는 것을 잊어버리다. (미래에 할 행동)

I forget playing yesterday.  → 어제 놀았던 것을 잊어버리다. (과거에 한 행동)

 

I tried to turn off the TV, but I couldn't it.  → TV를 끄려고 노력했지만, 끄지 못했다.

( try to 부정사 : ~하려고 애쓰다. 노력하다.)

I tried eating some food, but I feel still hungry → 음식을 먹어보았지만, 여전히 배가 고팠다. 

(try 동명사 : 시험 삼아 ~를 해보다.)

 

의 형태로 사용될 수 있다. 각각의 경우마다 문맥상의 해석이 다른 의미를 가질 수 있으므로 항상 어떤 의미인지 생각해보며 공부해야 한다. 

 

반응형

+ Recent posts