그거 항상 그랬어 < It's always been like that >
이게 원래 이런거야? < It's supposed to be like this ? >
그런지 좀 됐다고 < It's been like that for a while (now) >
그 이후로 그래 < It's been like that ever since >

A: 이거 왜이래?
B: 왜?
A: 힌지 말이야. 왜 이러지?
B: 아 그거?, 그거 항상 그랬어
A: 이게 원래 이런거라고?
B: 아니 내말은 그런지 (이제) 좀 됐다는 거야 
A: 지난번에 봤을 땐 안이랬는데
B: 맞아 그랬었어. Kyle 이 실수로 깔고 앉았던거 기억나?
A: 아니
B: 암튼 그랬었는데, 그게 일년도 넘은 일이야. 그 이후로 그랬어

A: What's wrong with this ?
B: Why?
A: The hinge. Why is it like this ?
B: Oh that? Yeah, It's always been like that
A: You mean it's supposed to be like this?
B: No I mean it's been like that for a while (now)
A: It wasn't like this the last time I saw it
B: Yeah, it was. Remember when Kyle accidentally sat on it ?
A: No
B: Well, he did and that was like more than a year ago. It's been like that ever since

 

*now가 현재 완료형과 함께 '이제' 정도의 의미로 쓰이는 경우

It's been several months now : 이제 몇개월 됐네

 

* ever since 와 after that

It's been like that ever since : 그 이후로 쭉 그 상태

It became like that after that : 그러고 나서 그렇게 됐어


make sure

make sure ~ : ~을 꼭 (어떻게) 하다   (무엇을 "확실하게/분명하게 만들다" 라는 의미가 아님!)

 

꼭 ...(어떻게) 해주세요 (부탁)
Please make sure to ... :

집에 오면 꼭 손 씻으세요
Please make sure to wash your hands (when you get home/ before you eat /after you use the bathroom)

나는 꼭 (어떻게) 한다
I make sure to do something

나는 집에오면 손을 꼭 씻는다
I make sure to wash my hands when I get home.

나는 나가기전에 꼭 (항상) 폰을 풀충전한다 
I always make sure that my phone is fully charged before I go out.
(I always make sure to fully charge my phone before I go out)

마스크 꼭 챙기세요
Make sure (that) you have your mask

난 나가기 전에 마스크를 꼭 챙겨요 
I (always) make sure (that) I have my mask before I go out

나는 여분 마스크를 꼭 하나 가지고 다녀요. 혹시 하나 잃어버릴까봐..
I always make sure that I carry on extra mask just in case I lose one

두시간 이상 나가 있을 예정일 때는 강아지 물그릇을 꼭 가득 채워놔요
When I'm going out for more than a couple of hours, I always make sure to fill up my dog's water bowl.

이 표현에 대해서는 아마 전에 여러번에 다룬 적이 있을텐데, 여러분이 올바른 의미와 활용을 꼭 이해하길 바랬어요
I probably covered this expression before several times.
But I just wanted to make sure that you understood the correct meaning and usage.

later : 나중에

현재 시점에서 미래(나중에)를 기약하며

☞  I'll see you (again) later

 I'll call you back later

 

현시점에 (시간의 양) 후에 /뒤에 에는 later 를 쓰지 않음 --- > 시간의 양과 함께 언급할 땐 'in' 을 떠올려야함

"며칠(시간의 양) 뒤에 보자"  

5분 뒤에 보자
I'll see you fine minutes later (X)
I'll see you in five minutes (O)

1시간 뒤에 다시 전화할게요
I'll call you back in an hour 

 


과거에 있었던 일에 대해서 말할때는 씀(later = after that)

 

걔들 2008 년에 처음 만났었는데, 불과 몇년 후에 결혼햇어
They first met in 2008, (just) a few years later, they got married
(They got married just a few years later)

내 가족들이랑 나는 한국으로 1994년에 들어왔어요
그리고 몇년후에 IMF 가 닥쳤어요
타이밍이 별로 좋지 않았죠

My failmy and I came back to Korea in 1994.
Just a few years later(after that), the IMF crisis hit.
So, the timing wasn't very good for us

 

in vs after  의 뉘앙스 차이

 

몇 년 후에는 다들 잊을 거야
 After ten years, everyone will for get about it

몇 년 지나면 다들 잊을 거야
In ten years, everyone will forget about it 

in five minutes : 5분 후에/뒤에

after five minutes : 5분 지나면 

 

 

 

<가장 우선적으로 해야할 일은>

 

A: 쉽지 않을거야

B: 응 자 가장 먼저 해야 할 일은 - 사람들한테 알려서 가장 우선적으로 해야할 일로 만들어야 돼

A: 맞아. 그리고 참고로, 킴이 이번 달에는 없을 거니까 일손이 많이 부족해

B: 맞아. 그리고 그 얘기 하는 김에, 일을 어떻게 나눠서 할건지를 좀 의논해 봤으면 좋겠어

C: 일 얘기가 나와서 말인데, 야근에 대한 수당은 받는 거야?

B: 그럴일은 없을 듯

C: 그거 참 힘이 되네

 

A: It's not going to be easy

B: Mm-hmm. So, (the) first order of business - We need to get the word out and make sure that this is on the top of everyone's to-do list

A: Right. And for the record, we're severely short-handed since Kim won't be here for the rest of the month.

B: That's right. And while we're on that subject, I'd like to discuss our division of labor.(R&R, role & responsibilities)

C: Speaking of labor, do we get paid for overtime (work) ?

B: I doubt it

C: Well, that's encouraging


*first order of business : 가장 먼저 해야할 것 / 가장 먼저 처리할 것 (일의 순서에 있어서 가장 먼저 해야 하는 것에 대해 말할 때)

(the first thing we need to do / take care of / deal with 와 의미적으로 유사하나 비교적 formal 하게 말할 때)

*get the word out : 여기서 word 는 "말" 을 의미

* make sure that something is something : 무엇을 꼭 반드시  (~ 상태로 만들다 / ~게 되게끔 하다)

* for the record : 참고로(여기서 공식적으로 얘기 할께 라는 의미 포함; 분명히 얘기해 두는데)

*short-handed : 일손 부족(일적으로)

(understaffed/ short-staffed 와 유사하지만 시스템 적으로 리소스가 부족할 때)

*while we're on that subject : 그 주제로 얘기 나온 김에

 (as long as we're talking about this ..)

*speaking of labor : '좀 다른' 얘기로 이어갈 때 (1차원적으로 떠오른 얘기 할 때)


<빠진 내용이 없는지 확인했으면 좋겠습니다>

 

이번 주에 우리가 할 일들을 목록으로 만들어 봤어요

오늘 아침에 얘기한 내용을 다 넣으려고 했는데, 같이 검토해서 빠진 내용이 없는지 확인했으면 좋겠어요

시간 순서대로 최대한 정리하려고 했는데, 그것도 수정이 필요하다고 느껴지면 얘기해주세요

 

Ok. I've put together a list of the things we need to do this week. 

I tried to include everything we discussed this morning

But I'd like it if we could go over it together and make sure nothing has been left out.

I did my best to put it in chronological order but please let me know if you feel (think) we need to make any changes to that as well.


*put together (made) : 이미 존재하는 정보들로부터 구성을 했다는 뉘앙스

*include :  포함하다 / 포함시키다 

*I'd like it if we could do something together : 함께 ~ 했으면 좋겠습니다 ( I wanted 보다 formal 하게)

*go over :   검토하다

*make sure ~ : ~를 확실히 하다

*be left out / leave out something : 뭔가를 빼놓다 빠트려 놓다

*put it in chronological order : 시간 순서대로 정리하다(put it)

*make changes to something : ~에 변화를 주다 /수정하다/ 변경하다


<나중에 다시 얘기해도 될까요 >

 

Can I get back to you on that(this matter, this issue) ? : 이 주제에 대해서 내가 다시 연락해서 다시 얘기를 해보자

(소통을 다시 이어가는 것이 이메일/전화/직접만나는 것을 모두 포함함)

내가 준비가 안돼있다거나, 다른 일로 지금 못한다거나, 좀 더 준비를 하고 다시 얘기를 했음 한다거나.

 

Let's talk about this later 는 약간 지금 중요하지 않으므로 나중에 얘기합시다 라는 뉘앙스도 있음

 

*get back to someone

 ex) Thanks for getting back to me so soon : 다시(이어서) 소통(피드백)을 해줘서 고마워

 ex) Sorry for getting back to you so late : 그 소통(피드백을) 좀 늦게 줘서 미안해

 


<short notice >

 

I'm sorry for the short notice : 준비할 시간을 너무 못줘서 미안해요

Thanks for getting back to me on such short notice : 준비할 시간이 짧았음에도 이렇게 피드백 줘서 고마워요

 

*(on) (such) short notice : 알림이 너무 짧았어서 

 


자 다 오신것 같네요. 시작하는 게 좋겠습니다

오늘 저희가 다룰 내용이 많습니다

다들 새로운 업무 평가 시스템에 대해서 궁금하신 것이 많을 것으로 알고 있고 진행을 하면서 최대한 모두 다루도록 하겠습니다.

하지만 그것에 들어가기에 앞서 먼저 확인하고 싶은 것이 몇가지 있습니다.

 

Ok, I think everybody is here. I think we should get started.

We have a lot to cover today.

I know you all have a lot of questions about the new performance evaluation system and we'll try to address as many of them as we can as we go along.

But before we get into that, there are a couple of things that I'd like to go over first.

 

*cover : 어떤 '범위'를 다룬다라는 의미

*address : 'question' 과 어울림 (단순히 어떤것을 해결하는 의미 외에도, 해당 이슈에 대해 "생각하고 의논한다"라는 의미를 내포)

(deal with / handle with /cover + question 은 다소 어색함)

 

+ 다른 의미로 사람을 address , 사람에게 문서를 address 하는 표현도 있음

 

*go over : cover 과 의미상 유사하나, 일일이 훑어보면서 검토한다 라는 것을 강조하는 의미

 

 


 

※ 출처 : 유튜브 "라이브 아카데미"

 

https://www.youtube.com/watch?v=OGQUPXKpKV0&list=PLIsIUJcT0HIWujnempwzDUjepTu-AGxDa&index=9 

https://www.youtube.com/watch?v=9P9vPSscFKc&list=PLIsIUJcT0HIWujnempwzDUjepTu-AGxDa&index=12 

 

일정을 앞당길 때 'move up'

 

제가 예약한 일정을 더 일찍으로 변경하고 싶습니다

I would like to move up my appointment to an earlier date

 

우리가 회의를 화요일로 앞당겼어요(능동)

☞ We moved up the meeting to Tuesday
 
회의가 화요일로 앞당겨졌어요(수동)
 The meeting has been moved up to Tuesday
 
회의를 화요일로 앞당겼어요 (애초에 그렇게 할려고한 의도/계획/동기/이유 가 있는 상황일 때)
☞  We got the meeting moved up to Tuesday 

사역동사*get something p.p : 어떤일을 완성짓는 것


A: 예약했어?
B: 응 근데 가장 빠른게 다음 주 월요일이래
A: 안돼 너무 늦어. 앞당길 수 있는지 알아봐봐
 
A: Did you get an(the) appointment ? (An: 일반적 예약, The : 구체적 /특정적인 예약)
B: Yes, but they said the earliest (soonest) is next Monday.
     (They said Monday next week is the earliest (soonest))
A: No, that's too late. See if you can get it moved up (see if you can moved up)
 
 
*예약
특정 장소나 서비스 (식당/호텔 등) 예약: reservation
사람 (특히, 의사나 변호사 등)과 진료/상담예약: appointment
 
*알아보다 
see + if : ~ 인지 아닌지
see + what /where/how/how much / why .. : 무엇인지 /어딘지/ 어떻게 하는건지 / 왜그런지
ex ) I'll see if i can do this : 내가 할 수 있는지 한벌 볼께


 일정을 미룰 때 'push back' 'postpone'


A: 숙제가 이번 주까지가 기한이야? 다음 주로 미뤄진 것 아니었어?
B: 그랬었는데 시험 기간이랑 겹쳐서 다시 앞당겨졌어
 
A: Is the homework due this week?
   (Is the homework due by the end of this week ?)
   Wasn't it pushed back(postponed) to next week ? (I thought it was pushed back(postponed))
 
B: It was. but it was(got) moved back up because it's test week
 
*겹친다라는 표현을 한다면..
  It (overlapped or conflicted) with test week


 어떤 것에 대해 누군가에게 보여 줌으로써 의견 받다 : run something by someone
 어떤 것에 대해 얘기 꺼내다 : bring something up (to someone)
 누군가에게 무엇(어떤 사실)을 인지시키다 : bring something to somone's attention

 

A: 이거 꽤 중요해 보이는데,  상사한테 의견 받아보고 뭐라고 하시는 지 저한테 알려주세요
B: 알았어. 오늘 점심 바로 전에 짧게 회의가 있는데 그 때 얘기를 꺼내볼게

(상사와의 회의 중에 / 혹은 마치고 )

B: 아. 한가지 더 보여드리고 싶은게 있는데요 (blah blah ~)

C:  얘기해줘서 고마워요


A: This seems pretty important
     Why don't you run it by your boss first and let me know what she says
B:  Yeah. of course. I have a short meeting with her just before lunch today. I'll try to bring it up then

(right after the meeting) 

B: Oh. There's one (more / other ) thing (that) I wanted to run by you
C: Thanks for bringing this to my attenstion

 
*give someone a heads up : 누군가에게  heads  up 을 하게 해줌
 hey thanks for the heads up : 미리 얘기해줘서 고마워

< 제가 지체만 시킬 것 같아요 > 

I feel like I'll just be holding up the process

 

(예문)

 

A: 그래서 어떻게 생각하세요?

    필요한거 다 알려줘서 오늘 중으로 완전히 준비시켜 드릴 수 있는데

 

B: 아 너무 좋은 제안이고 아마 나중에 후회할 것 같은데,

    아쉽지만 패스해야 될것 같아요.

   시간을 좀 더 갖고 다시 생각해보길 바라시겠지만

   제가 지체만 시키는 상황이 될것 같아요

 

A: So, What do you say ?

    I can fill you in on everything and get you up to speed by the end of the day today

 

B: You know, there's so much that I like about that offer and I'm probably going to reget this (later)

     but I'm afraid I'm going to have to take a pass on it.

     I know you'll probably want me to take some time to think it over

     but I feel like I'll just be holding up the process


*What do you say ? : 제안 후 의견이나 생각을 물을 때 (Casual 한 느낌이나 formal하게 써도 어색하지 않음)

*fill someone it (on something) : something 에 대해 불충분한 것들을 ~에게 채워주는 것

*get someone up to speed : fill ~ in 과 비슷하지만, (도와줌으로써) 다른 사람들과 같은 속도로 할 수 있도록 높여준다는 느낌 

*by the the end of the day today :  종료 시점 '이내로'

 (first thing tomorrow morning : 내일 첫번째로)

 

*I'm afraid I'm going to have to do something : 아쉽게도 ~ 해야할것 같다 ( 앞으로 ~해야할 것 같다는 뉘앙스)

 (I'm afraid I have to do something: ~할수 밖에 없는 상황이 '이미' 존재)

 

*pass on it : say 'no' 로도 표현 가능 

 

*hold up the process : 진행을 지체시키다 

(I'm sorry I've been holding up the process : 진행을 지체지켜서 죄송합니다)

 

*미래진행형: I feel like I'll just hold up the process : 지체 시킬것 같다(현재)
                     I feel like I'll just be holding up the process : 지체 시키는 상황이 될것 같다(미래진행) 라는 뉘앙스 차이

 


< 아직 몇가지 세부사항들을 조율중이에요 > 

We're still in the process of working out a few fine details

< 그들이 중간에서 타협해줄 의향이 있다면, 빨리 진행하고 싶네요 >

If they're willing to meet us halfway, we're very anxious to get things moving forward

 

(예문)

 

새 공급처와 계약이 거의 성사되려고 하고 있어요. 

아직 몇가지 세부사항들을 조율중이에요

우리가 추가 요청을 몇가지 했는데,

그들이 중간에서 타협을 해줄 의향이 있다면 우리는 빨리 일을 진행시키고 싶어요

 

We're closing in on a contract with a new supplier.

We're still in the process of working out a few fine details.

We've made some additional requests

and if they're willing to meet us halfway, we're very anxious to get things moving forward


*closing in on something : ~ 에 점차 가까워지고 있다

*be in the process of ~ ing : ~ 하고 있는 과정에 있다

*work out : 조율하다 (구동사), work (things) out with (someone)

*meet someone halfway : 타협을 보다 

 Come on meet me halfway :  타협좀 하자

*get things moving forward : 일을 진행시키다


<언제까지 하면 될까요? > 

When's a good time for you ?

 

시간 언제가 좋아요? 괜찮으세요?

When's a good time for you ? / When's good for you ?

When's the best time for you ? / When's the best for you ?

 

가능한 빨리요

As soon as possible 

 

급할 것 없어요. 언제는 할 수 있을때 해주세요

There's no rush. Just whenever you can get to it

 

편한 시간내에 해주세요 + 하지만 가능하면 빠르게

At your earliest convenience

 

 

헤더 파일은 별도 파일에 구현되어있는 함수와 클래스의 인터페이스를 선언 및 제공하기 위한 용도로 사용됨

 

즉, 헤더파일은 보통 실제 구현 코드는 포함하지 않고, 프로그램의 API와 같은 형태로 제공되는 용도로 사용됨

 

Build process 에서 C++ 컴파일러는 헤더파일을 읽어 프로그램 상에서 사용 되는 함수와 클래스를 파악함

별도 소스파일에 존재하는 실제 구현 코드는 object 파일로 컴파일 됨

결국 object 파일은 링킹(linking) 과정을 통해 최종 실행 파일 혹은 라이브러리를 만들어 내게 되는 것

 

헤더파일들은 여러가 지 소스파일들에서 코드 중복을 방법을 제공하기도 함

예를들면, 한 프로그램이 다른 소스 파일에 정의된 유틸리티 함수를 사용한다면, 해당 함수는 헤더파일에 선언될 수 있으며, 다른 소스파일에서는 그것을 include 함으로써 사용할 수 있게 됨

이렇게 함으로서 코드가 중복이 없는 정제된 코드를 만들어 낼 수 있음

 

헤더 파일은 build process 에서 프로그램의 요소(component)들의 인터페이스와 구현을 분리하는 방법이며, 코드 중복을 줄일 수 있는 아주 중요한 역할을 함

 

 

 

 

Header files provide a number of benefits for building C++ programs:

  1. Code organization: Header files provide a way to separate the interface and implementation of a program's components, making it easier to organize and maintain the code.
  2. Code reuse: Header files make it easy to reuse code across multiple source files, as functions and classes can be declared in a header file and included in any source file that needs to use them.
  3. Dependency management: Header files make it clear which entities are used by each source file, making it easier to manage dependencies between different components of the program.

virtual function (가상함수) 오버라이딩 두가지 규칙

1. 상속된 메소드를 재정의할 경우에는 오리지널 원형과 정확히 일치시킬 필요가 있음

(에외: 리턴형의 공변(covariance)- 리턴형이 기초 클래스에 대한 참조나 포인터인 경우 파생 클래스에 대한 참조나 포인터로 대체)

2. 기초 클래스 선언이 오버로딩 되어있다면, 파생 클래스에서 모든 기초 클래스 버전들을 재정의 해야 

 

Abstract class (추상 클래스) 의 특징

적어도 하나의 순수(pure) 가상함수를 가진 클래스

순수가상함수(pure virtual function) : 함수 선언 뒤에 “=0” 붙여서 표현하며 선언만으로 존재

순수가상함수를 포함한 클래스는 객체생성 불가능(기초역할을 하기위해서만 존재)

 

상속과 오버라이딩(Inheritance and Overriding)

기초 클래스 메소드를 파생 클래스에서 재정의 할때는 일반적으로 해당 기초 클래스 메소드를 virtual 로 선언함

virtual 키워드 사용하지 않을 경우, 프로그램은 참조형이나 포인터형에 기초하여 메소드를 선택

virtual 키워드 사용할 경우, 프로그램은 참조나 포인터에 의해 지시되는 객체형에 기초하여 메소드 선택

 

※ 주의: 파생 클래스에 하나라도 오버라이딩 된 함수가 존재할 경우, 기초 클래스에 가상 소멸자 선언해줘야 함

virtual 소멸자가 아니라면, 포인터형에 해당하는 소멸자만 호출될 것

(즉, 파생 클래스를 지시하는 경우에도 기초 클래스 소멸자가 호출된다는 것을 의미)

따라서 virtual 소멸자로 객체형에 해당하는 소멸자가 호출된 이후 기초 클래스 소멸자가가 자동으로 호출되게함

 

정적 결합과 동적 결합(Static binding & Dynamic binding)

 

정적 결합: 컴파일 동안 일어나는 결합 (초기 결합)

동적 결합: 런타임 동안 올바른 가상 메소드가 선택되도록 하는 결합(말기 결합)

 

객체에 대한 참조를 사용하여 또는 객체를 지시하는 포인터를 사용하여 가상 메소드가 호출되면,

프로그램은 그 참조나 포인터형을 위해 정의된 메소드를 사용하지 않고, 

객체형을 위해 정의된 메소드를 사용하며 이것을 “동적 결합”이라고 함

 

기초 클래스 포인터나 참조가 파생 클래스 객체를 지시하는 것이 항상 가능하므로 이러한 로직이 중요함

(암시적) 업캐스팅: 기초 클래스 포인터나 참조가 기초 클래스 객체나 파생 클래스 객체를 참조하는 것을 가능하게 함

 

동적결합이 필요한 이유

이에 대한 해답으로 가상 멤버 함수 개념이 등장

 

friend (프렌드) 와 virtual function 가상함수)

프렌드는 가상함수가 될 수 없음

멤버 함수만 가상함수가 될 수 있는데, 프렌드는 클래스 멤버가 아니기 때문

이 경우 프렌드 함수 내부적으로 가상 멤버 함수를 사용하게 하면됨

 

가상함수를 다시 정의하지 않으면, 파생 클래스는 그 함수의 기초 클래스 버전을 사용함

(길게 이어진 파생 사슬 구조라면 가장 최근에 정의된 버전을 사용함)

 

어떤 함수를 파생 클래스에서 재정의하면 동일한 함수 시그니처를 갖고 있는 기초 클래스 선언만 가리는 것이 아니라,

매개변수 시그니처와 상관 없이 같은 이름을 가진 모든 기초 클래스 메소드를 가림

 

 

가상함수 테이블의 생성 및 참조

virtual table 는 컴파일러에 의해 생성됨

생성하는 조건은 클래스 내부에 최소 하나의 가상함수가 정의 되어 있는 경우임

가상함수 테이블은 해당 클래스의 가상함수 리스트를 포함하고 있는 자료 구조를 의미함

 

가상함수를 포함하고 있는 클래스의 각 객체들은 가상함수 테이블을 가리키는 포인터를 가지는데,

이 포인터는 객체의 생성자에 의해 초기화 되며, 해당 클래스의 가상함수 테이블을 가리킴

 

객체에 의해 가상함수가 호출되는 것은, 가상함수 테이블 포인터를 이용하여 가상함수 테이블 내에 호출된 함수를 찾아 호출하게 되는 것

 

가상함수 테이블은 객체 포인터나 참조에서 가상함수가 호출되는 런타임 때에 참조 됨

컴파일러는 가상함수 테이블 포인터를 사용하는 코드를 생성함으로써, (객체의 실제 타입을 근거로 )정확한 함수를 찾아내게 됨

이러한 과정을 dynamic dispatch 라고 하며, 이 과정을 통해 런타임에 객체의 실제 타입으로부터 정확한 함수가 호출될 수 있게 되는 것임

 

가상함수 및 테이블의 사용은 C++의 핵심 기술중 하나인 다형성(Polymorphism)을 지원함으로써 유연하고 확장성 있는 코드를 구성할 수 있음

 

결론: virtual table 자체는 컴파일 타임(compile time)동안에 생성되나 조회는 런타임(runtime)에 이루어짐

클래스간 결합도

friend > inheritance > composition ( > aggregation ) > dependency

 

 

용어정리 : 상속?  객체?  캡슐화?

  1. 상속은 기능의 확장이 아니라, 클래스를 분류하는 수단이다
  2. 객체는 책임이 있는 어떤 것이다
  3. 캡슐화는 데이터, 인터페이스, 클래스, 시스템 등 구현 가능한 모든 것에 대한 은닉이다. (캡슐화는 가변성에 대한 은닉이다)

 

상속이 내포하고 있는 문제

상속이란?

기존에 정의되어 있는 클래스의 필드와 메소드를 물려받아 새로운 클래스를 생성하는 기법

중복 코드 제거와 기능 확장을 쉽게 할 수 있음

클래스들 간 계층적인 구조를 만들 수 있음

 

하위 클래스가 상위 클래스의 구현에 의존하므로 (상위 클래스)변경에 취약

 

- 상속은 부모 클래스와 강하게 의존하고, 부모 클래스의 캡슐화를 해치고, 결합도가 높아짐

- 부모 클래스 구현을 변경하면, 많은 자식 클래스를 모두 변경해줘야 하는 상황이 생길 수 있음

 

상위 클래스의 모든 퍼블릭 메소드가 하위 클래스에도 반드시 노출됨(불필요한 메소드 상속받는 문제)

 

- 상속은 불필요한 부모 클래스의 퍼블릭 메소드가 자식 클래스도 어쩔 수 없이 노출하게 됨

- 특히 공개된 부모 클래스의 퍼블릭 메소드가 자식 클래스의 내부 규칙과 맞지 않을 수 있음

 

조합은 이 문제를 어떻게 해결할 수 있나?

 

- 상속과 달리 부분 객체의 내부 구현이 공개되지 않음

  - 메소드를 호출하는 방식으로 퍼블릭 인터페이스에 의존해서 부분 객체의 내부 구현이 변경되어도 비교적 안전

- 부분 객체의 모든 퍼블릭 메소드를 공개하지 않아도 됨

 

조합하고 싶은 클래스의 인스턴스를 새로운 클래스의 private필드로 참조, 

그 다음 인스턴스의 메소드를 호출하는 방식으로 구현

 

조합하면 부분 객체의 캡슐화를 지킬 수 있음

조합은 부분 객체의 퍼블릭 인터페이스에 의존함

 

조합은 부분객체의 모든 공개 메소드를 노출하지 않아도 됨

 

상속과 조합을 어떻게 사용해야 할까?

 

상속의 목적

서브 타이핑 (다형적 계층구조 구현) - 부모 자식 행동이 호환

서브 클래싱 (다른 클래스의 코드 재사용) - 부모 자식 행동이 호환 x

 

상속을 고려할때

1. 두 객체가 서로 is-a  관계인가 (조합은 has-a 관계)

2. 클라이언트 관점에서 두 객체가 동일한 행동을 할 것이라 기대하는가

 

결론: 단순히 코드 재사용하려면 조합, 동일하게 행동하는 인스턴스를 그룹화 하려면 상속.

 

 

 

#직장영어1

 

<Casual 한 표현 vs Formal 한 표현>

 

당신이 준 정보를 가지고 견적을 낼게요

대략적인 견적이 되겠지만 얼마가 들지 대충 감은 올거에요

그 가격이 너무 높다 싶으면 다른 방법을 찾아볼 수 있을 거 같고요,

그런게 아니면 누군가를 보내서 더 자세히 살펴보고 정확한 비용을 결정짓고 나면 최종결정을 하시면 됩니다.

 

(Casual version)

I'll come up with an initial cost estimate from the information that you've given me.

It'll be a rough estimate but it should give you an idea of about how much you'll be spending.

If you feel that it's too much, we can look for another way.

Otherwise, we'll send someone to take a closer look and determine the exact cost.

Then, you can make your final decision

 

(Foraml version)

I'll come up with an initial cost estimate based on the information that you've provided

It'll be a rough estimate but it should give you an idea of what to expect

If you have any reservation at that point, we can discuss other options

Otherwise, we'll send someone for a closer inspection and determine the exact cost

after which, you can make your final decision

 

*what to expect :  무엇을 예상할 수 있는지 (돈을 쓰다라는 말을 직접적으로 언급하지 않음)

*if you have any reservation ~ : 마음이 바뀌면, 다시 생각해보고 싶으면 (주저하게 될때)

*inspection: 단순히 보는 것보다 좀 더 철저하게 확인하는 것

 


 

 

A: 나 이제 가봐야겠다

B: 그래 이번주에 시간나면 좀 알려줘. 막판에 (얘기가) 다른 길로 좀 새서 초반에 나왔던 얘기들을 좀 더 이어서 하고싶어. 중요한 문제에 대한 내용이 나왔던 것 같은데, 그 중 몇가지만 얘기로 좀 풀어가면 좋을 것 같아. 이번 주 중으로도 좋고, 아니면 시간이 지나면 까먹으니까 오늘 이따가도 좋고.

 

A: Ok. I gotta get going

B: Yeah. Let me know when you have some downtime this week. We got sidetracked towards the end and I want to follow up on some things that came up earlier in our discussion. I think we touched on some important issues and I'd love it if we could just talk through some of them. Sometime this week is fine or maybe even later today while our memories are still fresh.

 

*downtime : 많이 바쁘지 않은 시간

*get sidetracked : 다른 길로 샜다

   (get distracted : 방해를 받았다)

*towards the end : 후반부로 가면서

*follow up on something : something을 계속 이어서 더 나아가다 (보충하다)

*came up : 언급 됐던 

*touch on something : 언급됐던(다뤘던; mention 보다 좀 더 폭넓은 느낌; briefly 하게)

 (mention은 말로 언급되었던 것을 강조하는 느낌)

*I'd love it we could do someting : ~ 했으면 정말 좋을거 같아요 (자주 쓰는 표현)

*talk through : 문제 해결을 위해 얘기를 나누는 느낌 (talk about : 단순히 얘기를 나누는 느낌) 

*sometime this week : 이번 주 중 언젠가

*later today : 나중에, 이따가 (오늘 안으로) (자주 쓰는 표현)

*while our memories are still fresh : 까먹기 전에 (자주쓰는 표현)

+ Recent posts