* 원문 : https://hiphople.com/lyrics/4953474

(제가 원문 작성자이며, 본 게시물은 일부 개선이 이루어진 결과물입니다.)

 

 

[Hook: Bilal]
Your inner heart, your inner my mind
너의 마음 속, 네 안에 있는 나의 마음

You're the star that will always shine
넌 영원히 빛나고 있을 별이야

Forever you'll be with me
영원히 넌 나와 함께일 거야..



[Verse 1: Lupe Fiasco]
Uh, it go like
시작할게

You ever see the inner depths of a man's soul?
넌 사람의 영혼 내면의 깊이를 본 적 있니?

Or ninja turtles pouring out of manholes?
아니면 맨홀 구멍 속에서 나오는 닌자 거북이라도 말야
(*닌자 거북이를 현실에서 마주치는 것이 말도 안 되는 일인 것처럼 사람의 영혼의 깊이를 가늠하는 것은 어렵다는 의미)

This is balance
이건 균형을 잡는 거야

Between a comic and a conscious, that's the challenge
우스움과 진지함의 사이에서, 그건 하나의 도전이겠지

Between the solitary and the conference that I examines
혼자가 된다는 것과 사람들과 어울려 대화하는 것 사이에서, 시험해보곤 했어

That I imagine was a figure
내가 상상했던 것은 하나의 인간의 모습이었지

Would be the start of world peace and the transformation of niggas
그건 세상의 평화와 흑인들의 변화의 시작이 될 거야

Like the transubstantiation of liquor
포도주가 그리스도의 피로 바뀌는 것처럼

But that's just turnin' them into blood
하지만 그건 그저 모든 걸 피로 바꾸어 버릴 뿐이야

And we'll be right back where we was
그리고는 우리가 있었던 곳으로 바로 돌아오게 될 테지

Not a peace-sign, but a fascination with scissors
Peace Sign보단 가위가 더 매력적이야
(*흔히 V자로 손가락을 만들어 나타내는 수신호)

So I can cut
그래서 난

Myself off from the calculations of empress, empires, and the sinners
나 자신을 여왕과, 제국들과, 죄인들의 이해타산으로부터 잘라내겠어

For advancement of human suffering
점점 커져가는 인간의 고통으로부터

And other things trying to impede my publishing and editorials
그리고 나의 음악과 의견들을 발표하는 것을 방해하려 하는 다른 것들로부터도

That's gon' bring it back to us again
그렇게 함으로서 우리에게 다시 예전의 것들을 되돌아오게 할 거야

A boomerang minus Halle Barry and Eddie and everybody fucking and huh'
할리 베리와 에디 머피를 뺀 부메랑, 그리고 전부 다 X까라고 해!
(*Boomerang은 에디 머피와 할리 베리가 주연한 1992년 영화. Boyz II Men의 OST로도 유명하다.)


[Hook: Bilal]


[Verse 2: Lupe Fiasco]
Shotgun
엽총
(*Lupe의 lyrical Weapon을 비유한 대상)

Even though independent cars ain't got one
모두가 차에 하나씩 갖추고 있지는 않겠지만

I got some and more to spare
난 몇 개 가지고 있고, 여분도 더 있어

No more despair
더 이상 절망하지 않을 거야

My motor-ware don't match my motivate to mate
내 자동차 컬렉션은 짝을 찾으려는 의지와는 어울리지 않네

Also I drive to stay alive and ride this over there
난 살아있기 위해 운전하고 이 곡을 태워서 달려

My momma so mad, so no alcohol in here
우리 엄만 M.A.D.D. 소속이야, 그러니 여기선 술은 절대 먹지 않아
(*M.A.D.D. : Mother’s Against Drunk Driving)

I'm Aries Spears on my Jay-Z shit
난 Jay-Z 랩을 따라 하는 Arie Spears고
(*Arie Spears는 래퍼들의 랩을 잘 따라 하는 것으로 유명한 사람.)

Affion on the Drake skit
Drake 랩을 따라 하는 Affion야
(*Affion도 Drake 랩을 따라 하는 영상으로 인기를 얻은 사람.)

Now how many more can I make with just one voice
얼마나 많은 목소리들을 지금 내가 오직 하나의 목소리만으로 대변할 수 있을까?

They might call it fake shit
누군가는 나를 가짜라고 말할지도 모르지만

This some deep shit
지금 이건 좀 쩔잖아?

It's my me impersonatin' we shit
난 지금 우리가 내뱉는 것들을 흉내 내고 있는 거야

Vicariously in every rap I speak with
내가 말로 내뱉는 모든 랩이 대신해서 말이지

I hope you're speakin' for me, if I'm ever speechless
네가 나에게 이야기해주길 바래.. 내가 줄곧 말이 없다고 해도

Cause I'mma be you
왜냐하면 내가 너의 입장이 되어 줄 테니까

Even though you're not here to be with
비록 네가 여기에서 나와 함께하고 있지는 않지만

I hope I see these gangsters actin' like teachers
이 판의 잘나가는 갱스터들이 선생처럼 행동하기를 바래

Wake up out they sleep, dare to dream
잠들어 있는 그들을 깨우고, 꿈 꿀 수 있는 용기를 가져

In a world so Martin Luther King-less
마틴 루터 킹의 정신이 너무 많이 사라져 버린 이 세상에서..


[Hook: Bilal]


[Outro: Lupe Fiasco]
And to my hero Heron, Gil Scott
그리고 나의 영웅, Gil Scott-Heron에게..
(*Gil Scott-Heron : 랩의 아버지라고까지 불리는 전설적인 작가 겸 뮤지션. 2011년에 타계하였으며, Lupe Fiasco의 롤모델이었다고 한다. “Revolution will not be televised”의 원조)

In a discourse with Baldwin
James Baldwin과의 대화 중에는
(*James Baldwin : 미국의 유명한 할렘 출신 흑인 소설가. 2차 세계대전 전후 시대를 빛낸 미국의 작가.)

On a jet plane with no fear for fallin'
제트기 안에서도 추락할 걱정이 없어

But wishin' it never lands
다만 절대 착륙하지 않기를 바라긴 하지

Reminiscent of the dream time
꿈을 꾸는 것만 같은 순간들을 추억하고는 해

Presently en route to the rise of the machine time
현재 우리는 기계의 시대가 도래하는 방향을 향해 나아가고 있어

Magazine times
잡지를 보는 시간

With coffee more sugar and milk than coffee
커피와 함께.. 설탕과 우유를 커피보다 많이 넣어서..

Aborted rhymes, rotten beats, and failed hooks
실패한 라임, 썩은 비트, 그리고 구린 훅

Roads as bumpy as braille books
점자책처럼 울퉁불퉁한 길

Fail cools, bad French, and mad push at the door
Cool하지 못한 현재, 꾸며낸 구린 프랑스어, 그리고 거칠게 밀어붙여진 문

Gourmet food at the starving soiree
굶주린 파티에서의 고급 음식들
(*세계의 반이 굶주렸다고 하지만 수많은 파티들에서 사람들은 고급 음식들을 먹고는 한다는 의미로 해석됨)

A choice of one easy woman at a time
한 번에 쉽게 여자 하나를 선택할 수도 있지만

I'll take three the hard way
난 어려운 세 가지 길을 택할 거야
(*Three the Hard Way는 영화의 이름이기도 하다. 백인 우월주의자들의 이야기를 담은 내용.)

Trying to be as abstract as possible
할 수 있는 한 관념적이고 추상적이기 위해,

And vulgar, the more shocking the more profitable
그리고 천박하게, 더 충격적이고, 더 돈이 될 수 있도록 노력할거야

A baby fed molten gold
어린아이들은 녹여진 금을 먹으며 자랐어

And sat upon a pedestal promote getting called 24 carot souls
그리고는 잘 나가는 사람이 되고 난 뒤엔, 24캐럿짜리 영혼들이 되어 버리고 말지

How to describe this
어떻게 이걸 묘사할 수 있을까

Insightful remarks such as the best thing I've ever heard is silence
’내가 지금까지 들었던 말들 중 최고는 침묵이었다’같은 통찰력 있는 언급이라던가

Some more technically impressive
기술적으로 더 인상 깊은 표현들이 있겠지

In a faux Spanish romantic hues of a Marxist dialectic
마르크스주의자들의 변증법으로 이루어진, 스페인어로 된 거짓되고 낭만적인 고함들은

Pleasing to the critics, but pointless is the common passerby
비평가들을 기쁘게 하겠지만 흔한 행인들에게는 무의미한 것일 뿐이야

Might as well not even exist, not even a bit
심지어는 전혀 존재하지 않는 것일지도 몰라.. 전혀, 정말 조금도

In the event of my demise give everything I prize to the poor
만약 내가 죽음을 맞이하게 된다면, 내가 가졌던 모든 소중한 것들을 가난한 자들에게 베풀어 줘

And to the oppressors, I leave a war
그리고 압제자들에게는 전쟁은 남겨주겠어

And so on and so forth
지금도 그렇고 앞으로도 그럴 테지만

'Lyrics translation' 카테고리의 다른 글

Little Simz - Introvert  (0) 2025.03.30
FKA Twigs - Mothercreep  (0) 2025.03.30
FKA Twigs - In Time  (0) 2025.03.30
FKA Twigs - I'm Your Doll  (0) 2025.03.30
FKA Twigs - Figure 8  (0) 2025.03.30

HTTPie docs의 custom header 설정 방식에 대한 설명과 예시만 보았을 때에는, Header:Value를 실제 커맨드 상에 어떻게 배치할 것인가에 대한 고민이 생긴다.

이거만 봐서는 어떻게 요청을 날려야 할지 막막하다. / 출처 : https://httpie.io/docs/cli/http-headers

 

JWT를 header에 추가하기 위해 직접 시행착오를 겪은 결과, 아래와 같이 공식(?)을 정리할 수 있었다.

http HTTP_METHOD url (Request body) Header:Value

 

HTTP_METHOD 자리에는 GET, POST 등 http method를, url에는 원하는 url을 그대로 적으면 된다.

단, 커맨드 작성 시 띄어쓰기 오류가 있는 경우에도 정상적으로 작동하지 않는다.

Header: Value 와 같이 작성하여도 오류가 나므로 반드시 Header:Value 의 형태로 붙여 쓰도록 하자.

 

올바른 작성 예시

# Request body X
http GET localhost:8080/my-application/user/list Authorization:token

# Request body O
http POST localhost:8080/my-application/user/login email="email" name="name" Authorization:token

 

별 것 아닌 내용일 수 있지만.. 누군가의 고민을 덜어줄 수 있는 글이었길 바라며.

 

험난했던 팀 프로젝트를 마치고, 잠시 마음을 내려놓으며 본격적인 취업 준비를 시작했다.

면접이나 코딩 테스트 준비를 위하여 알고리즘 공부를 다시 시작할 필요가 있다 생각하여

하루 1-2문제씩 알고리즘 문제를 풀어보던 중, 임박하게나마 정말 소중한 기회를 얻게 되었다.

더 늦으면 안되겠다라는 마음으로 거의 3달 가량 미뤄두었던 프로그래머스 스킬 체크 레벨 3에 도전하였다.

 

문제는 총 2개였다.

 

그 중 두번째 문제는 다른 기업 코테였는지, 아니면 내가 혼자 공부했던 것이었는지 정확히 기억이 안나지만

프로그래머스 IDE를 통해 접해본 경험이 있는 문제였다.

String을 이루는 Character를 하나씩 바꾸어 가며 목표하는 문자열로 만들기 위한 최소 스텝 수를 구하는 것으로,

한 번 본 적이 있는 문제라 하여도 당시 내가 어떤 방식으로 풀었는지는 기억나지 않았다.

Backtracking을 활용하되, 다음 메소드를 호출하는 조건을 보다 엄밀하게 구현하고자 노력하였다.

또 막상 이제 답이 나오겠지? 하는 시점에서도 조금씩 예외 케이스가 보이곤 했었어서

System.out.println();을 통한 간단 로깅을 최대한 활용하여 30분 정도만에 풀이를 완료하였다.

 

class Solution {   
	
    // 2번
    
    static int min = 100;

    public int solution(String begin, String target, String[] words) {
        int answer = 0;

        boolean[] checked = new boolean[words.length];

        DFS(checked, words, target, begin, 0);

        if(min<100)
            answer = min;
        return answer;
    }

    static void DFS(boolean[] checked, String[] words, String target, String now, int level) {        
        if(now.equals(target)) {
            min = Math.min(min, level);
            return;
        } else if(!isCheckedAll(checked)) {
            for(int i=0;i<checked.length;i++) {
                if(!checked[i] && isCorrect(now, words[i])) {
                    checked[i] = true;
                    DFS(checked, words, target, words[i], level+1);
                    checked[i] = false;
                }
            }           
        } else {
            return;
        }        
    }

    static boolean isCheckedAll(boolean[] checked) {
        for(boolean one:checked) {
            if(!one)
                return false;
        }
        return true;
    }

    static boolean isCorrect(String target, String now) {
        int t = 0;
        for(int i=0;i<target.length();i++) {
            if(target.charAt(i)!=now.charAt(i)) {
                t++;
            }
            if(t>1)
                return false;           
        }

        if(t==0)
            return false;
        else {
            return true;
        }            
    }

 

뒤늦게 확인한 첫번째 문제는, 잠시 시간을 내어 읽어보니 정렬 + 그리디 알고리즘을 활용하는 문제로 보였다.

다만 입력 배열의 최대 길이가 10억이나 되는 터라.. 라이브러리의 sort 메소드를 사용해도 될지 확신이 서진 않았다.

일단 아래와 같이 간단(?)하게 로직을 구성하였다.

A팀과 B팀 목록을 둘 다 오름차순으로 정렬하되, B팀이 가진 자원으로 A팀을 한 번이라도 더 이기기 위해서는

A팀보다 팀 내 순위가 높은 점수로라도 이길 수 있어야 한다고 생각하였다.

따라서 B팀이 이길 때에만 A팀에서 다음 선수(?)가 등장할 수 있도록 10분 정도 소요하여 간단하게 구현하였다.

설마 이게 될까 하는 마음으로 제출 버튼을 눌렀는데, 효율성 테스트까지 한 방에 통과해 버려서 상당히 놀라웠다..

 

import java.util.Arrays;

// 1번

class Solution {
    public int solution(int[] A, int[] B) {
        int answer = 0;

        Arrays.sort(A);
        Arrays.sort(B);

        int t = 0;

        int length = A.length;

        for(int i=0; i<length;i++) {
            if(A[t]<B[i]) {
                t++;
                answer++;
            }
        }        
        return answer;
    }
}

 

최종 소감을 정리하자면, 일단 운이 좋았던 것 같다.

오히려 응시 당시의 체감 난이도는 레벨 2 때가 더 높았던 것 같을만큼

그간 나도 성장했겠지만, 내가 풀 수 있는 문제들이 나와주어 다행이었다 생각한다.

 

일단 이것은 기분 좋은 일이지만, 조만간 있을 면접을 위해 최선을 다해야겠다.

또 이 와중이나마 조금씩 마음의 여유가 생긴다면,

지난 팀/개인 프로젝트를 진행하며 어려움을 겪었던 부분들에 대해 간략하게나마 정리해보고 싶다.

+ Recent posts