수요일, 4월 30, 2014

[일상다반사] 원칙 없는 사회

트윗을 읽다가 다음과 같은 아주 핵심을 찌르는 @HyeYunLee님의 글이 눈에 띄여 소개한다.

오늘 미국에서 오래 거주한 한국인과의 대화. "미국은 안 되는건 안 되는데. 한국은 안 되는걸 되게 하거나 될 수도 있게 하는 것이 가장 문제" 세월호 뿐만이 아니라 한국사회 전반적으로 깔려있는 원칙을 어기고 일을 진행하는 것이 능력으로 포장된건 아닌지

이 글을 읽다보니 몇 년 전에 미국에서 오래 거주한 지인(한국 사람이다)이 해준 비슷하지만 조금 다른 이야기가 생각나서 간략하게라도 정리하고 넘어가지 않을 수 없다.

미국에 가보면(뭐 예상하겠지만... EU에 속해 좀 잘 나간다 하는 유럽 국가도 마찬가지다), 공항, 상점, 음식점, 공공기관, .... 등에서 현장 직원들의 서비스 수준에 놀랄 때가 많을 것이다. 외국에 나가서 융통성이라고는 정말 개미 눈꼽만큼도 없는 서비스를 받으며 속이 터진 경험을 누구나 한번씩 해봤을 것이니 여기서 다양한 사례는 과감하게 생략하고 바로 본론으로 들어가겠다. 여기서 현상을 탓하지 말고 이유를 생각해보자. 왜 그럴까? 왜 선진국은 한국처럼 서비스를 번개처럼 멋지게(커피 나오셨습니다?) 하지 못할까?

지인이 분석한 결과는 너무나도 흥미로웠다. 지인의 주장에 따르면, 미국은 철저하게 능력 중심으로 승진이 일어나기 때문에(물론 안 그런 경우도 있지만 일반적으로 그렇다는 말이다) 정말 똑똑하고 싹싹하고 뛰어난 친구들은 승진에 승진을 거듭해 조직의 위쪽에 올라가 있기 때문에 현장에서 볼 수 없기 때문이란다. 이런 능력있는 친구들은 자신들이 아는 바를 총동원해 아주 평범하고 일반적인 사람도 고민하지 않고 일을 할 수 있게 원칙과 절차를 만드는 작업에 투입되므로 융통성을 희생하더라도 어떻게든 일은 진행되는 시스템을 구축할 수 있게 된다. 일을 처리하면서 예상하지 못했던 예외는 예외대로 모아 별도의 전문가(말 그대로 전문가)에게 위임해버리는 방법을 사용한다. 하지만 한국은 미국과 정반대로 현장의 아르바이트 직원은 아무리 똑똑하고 싹싹하고 뛰어나더라도 승진을 기대하지 못한다(아주 드물게 점장까지 하는 사람도 있지만... 창업주의 일가 친척이 아닌 이상 조직이라는 사다리의 꼭대기로는 절대 올라가지 못한다). 생존을 위해 융통성을 극대화하고 필요에 따라서는 규칙과 원칙도 과감하게 위반해야 한다. 그 결과 역설적으로 한국에 살고 계신 여러분들은 (원칙이니 규칙을 잘 지키는지는 아무 관심 없고...) 현장에서 똑똑한 사람들이 제공하는 융통성이 극대화된 최상의 서비스를 받을 수 있는 것이다. T_T

와, 정말 그럴싸한 이야기가 아닐까? 하지만, 여기서부터 파생되는 결과가 더 중요하다. 미국은 일선 직원들에게 매뉴얼에 명기된 권한과 책임을 명확하게 부여한다. 한국은 좋은 것이 좋은 것이므로 권한과 책임을 명확하게 구분하지 않는다. 그 결과 평상시에는 미국보다 한국이 월등히 높은 효율을 낼 수 있다. 현장에서 실행하는 사람들의 수준에서 차이가 날뿐더러 규칙과 원칙대로 하다보면 아무래도 시간도 오래 걸리고 사람도 많이 필요하게 되는 등 간접 경비(overhead)가 커지기 마련이니까. 자, 그렇다면 평상시가 아니라 비상시가 되면 어떻게 될까? 가용한 모든 자원을 집중하기 위해 적극적인 리더십이 필요한 상황이라면 어떻게 될까? 몇몇 똑똑한 비정규직 직원만으로 방어가 가능할까? 피해를 줄이거나 사전에 위험을 최대한 회피할 수 있을까? 답은 이미 우리 모두가 알고 있다. 연일 뉴스와 신문에서 대문짝만하게 사고 소식을 보도하고 있으므로 여기서 더 이상 언급하지 않겠다.

합리적인 선을 넘어서 원칙적으로 안 되는 것을 되게 만든 영웅담이 회자(아니 미화)되지만 정작 이로 인해 심각한 문제가 생겨 누군가 책임질 상황이 닥치면 미개한(응?) 아래 것들만 주리를 틀어 책임을 떠넘기며 꼬리를 자르고 도망가는 행태가 반복되는 상황에서 무엇을 더 기대할 수 있을지 모르겠다. 이번 사고 후에 별의별 희한한 온갖 종류의 대책이 다 나올텐데 백약이 무효라는 데 한 표 던진다. 향후 문제점이 개선될 가능성은 그리 높지 않으며 유사한 재난은 앞으로도 반복되리라는 사실이 사람들을 더욱 암울하게 만드는 진짜 이유다. 원칙대로 해도 융통성 없는 병신이라는 소리를 듣지 않는 사회가 되어야만 제대로 풀릴 문제다. 어떻게 보면 몇 푼 아끼느라, 조금이라도 빨리 하기 위해, 나 하나 편하자고 원칙 없는 사회를 만드는데 직간접으로 일조한 우리 모두가 자초한 결과다. 정말 부끄럽다.

EOB

화요일, 4월 29, 2014

[일상다반사] 아파치 Solr 4 구축과 관리 : 오픈소스 루씬 기반 엔터프라이즈 검색 플랫폼

해 님께서 열심히 작업해주신 덕분에 번개처럼 무사히(!) 번역을 끝낸 아파치 Solr 4 구축과 관리 : 오픈소스 루씬 기반 엔터프라이즈 검색 플랫폼이 절찬리에 예약 판매 중이다. 사회 초년생 때 검색 엔진 팀에 속해 KMS(지식 관리 시스템) 등을 만들고 나서 거의 10년 만에 검색 엔진 관련 서적을 손에 쥐니 기술의 발전사를 온 몸으로 느낄 수 있었다. 기존에 루씬을 사용한 경험이 있다면, 엔터프라이즈에 적합하게 기능과 확장성이 강화된 Solr에 한번 쯤 관심을 보이면 의외의 수확을 거둘 수 있을 것이다.

Solr는 톰캣, Jetty와 같은 서블릿 컨테이너로 배포가 가능하므로, 프로그래밍 지식이 크게 필요하지 않다는 점에서 프로그래밍이 필요한 루씬과 결정적인 차이점을 보인다. 루씬이 엔진이라면, Solr는 자동차다. 검색 기능이 필요한 단독형 애플리케이션을 제작한다면 루씬이 적합하지만, 엔터프라이즈용 검색 기능을 서비스에 추가한다면 Solr가 정답이다. 루씬을 사용할지 Solr를 사용할지 고민하는 분들이라면 답을 정해드리겠다. 십중팔구 여러분이 원하는 해법은 Solr다.

자, 그렇다면 Solr는 루씬에 어떤 기능을 더 추가했을까? 간략하게 추가된 기능을 정리하면 다음과 같다(세부 기능이 궁금하다면 공식 Apache Solr 페이지를 방문하기 바란다).

  • XML/HTTP와 JSON API
  • 검색 결과 강조(highlight)
  • 패싯 검색과 필터링
  • 공간 지리 검색
  • 빠른 점진적인 갱신과 색인 복제
  • 캐시
  • ZooKeeper를 사용한 클러스터 구성(고가용성)
  • 복제
  • 분산 색인/샤딩
  • 모니터링 인터페이스와 AJAX 기반 웹 관리도구

'아파치 Solr 4 구축과 관리'에서는 위에서 소개한 기능에 대해 빠르고 쉽게 접근하는 지름길을 제시한다. 책에 대한 역자의 간략한 소개는 역자 소개를 살펴보시고(분량상 소개는 생략한다), 상세 목차는 목차를 살펴보시면(역시 분량상 정리는 생략한다) 이 책이 추구하는 방향을 알 수 있을 것이다. 아무쪼록 이 책이 Solr 4를 탐험하는 데 있어 도움이 되기를 바란다.

EOB

토요일, 4월 26, 2014

[독서광] 당신은 사업가입니까

계속해서 경제/경영 블로그답게, 오늘도 경영 관련 서적을 하나 소개하고자 한다. 오늘 소개할 책은 '창업 전 스스로에게 물어야할 질문들'이라는 부제가 붙은 '당신은 사업가입니까'라는 책이다. 일반적인 창업 관련 서적들의 특징을 요약하자면 '꿈과 희망'이다. 아주 잘 된 사례를 중심으로 나도 어떻게 하면 저렇게 멋지게 사업을 할 수 있을지에 대한 방법을 나열하므로 '뽐뿌질'을 하기 마련이다. 물론 중간 중간에 어려운 난관이나 역경도 소개하지만 어디까지나 멋진 결과를 얻기 위한 중간 단계에 지나지 않는다. 이런 유형의 책들이 서가에 차고 넘치는 이유는 창업을 마음먹은 사람에게 올바른 말을 해봐야 잔소리로 들릴테고 결국 사람들이 듣고 싶어하는 말만 나열해야 책이 잘 팔릴테니 상업적인 특성을 고려하지 않을 수 없기 때문이다.

그런데, 오늘 소개할 책은... 아마 읽고 나면 내가 정말 창업을 해아할지 말아야할지 심각한 고민에 빠지게 만들어준다는 점에서 기존 서적과 확실하게 스스로를 차별화한다. 창업하고 나서 멋진 사무실로 출근해 고급 커피 한 잔을 마시며 우아하게 비서가 건내주는 하루 일정표를 살펴보며 아침을 여는 따위의 소설은 이 책에 나와있지 않다. 그 대신 화장실 청소부터 시작해 비용을 줄이기 위해 고군분투하며 부모 속을 긁듯 사장님 속을 박박 긁은 직원들을 잘 다독이며 기존 또라이보다 100배는 더 또라이인 주변 이해 관계자들을 통제해나가며, 시어머니보다 더 무서운 고객을 상대하며, 복사 용지 한 묶음을 사더라도 현금 흐름을 생각하지 않을 수 없는 시궁창 같은 현실에 대해 속 시원하게 열거하고 있다. '오늘이라도 당장 회사를 때려치우고 창업을 해야겠다'라는 생각이 드는 분이라면, '멘붕'을 일으킬 정도로 아주 직설적인 표현도 많이 등장하므로 눈에 잘 띄는 곳에 놓아두고(물론 회사가 아니라 집이 안전할 것이다) 틈나는 대로 읽으면 많은 도움이 될 것이다.

이 책에서 가장 마음에 드는 부분은 바로 '창업가'로 나서기 전에 가장 먼저 던저야 하는 다음과 같은 질문이었다.

사업가의 리스크와 보상 사이의 역학 관계를 평가하는 동안 당신은 "내가 사업가가 될 수 있을까?"가 아닌, "내가 사업가가 되어야만할까?"라는 질문을 자신에게 던져야 한다. 베리 몰츠는 '바운스 에서 이렇게 말했다. "많은 사업가들이 부담하는 리스크는 매우 크다. 그들의 잠재적인 수익은 그토록 낮은 성공 확률을 감당할 만큼 크지 않다. 그들은 자신들의 열정에 눈이 멀어 있다."

내가 사업가의 자질이 있는지 없는지의 자질도 무척 중요하지만, 내가 정말 사업을 해야할지 말아야할지에 대한 고민이 더욱 중요하다. 솔직히 이런 근본적인 질문을 던지지 않고서 사업을 시작하면 100전 100패라고 보면 틀림이 없다. 물론 부모의 정보력과 재력을 등에 업거나 엄청난 운이 작용해 엄청난 성공을 거둘 수도 있지만, "나는 운이 좋은 편이고 지금 바보처럼 사업하는 남들과 확실히 달라" 정도의 헛된 희망 고문으로 시작하면 대재앙이 닥치기 마련이다.

본문에 나오는 좋은 이야기를 정리해보겠다.

어떤 사업의 기술적인 업무를 이해하는 것이 곧 그 사업을 이해하는 것이라는 생각은 오해다.
당신이 사업을 시작한다면 당신의 직업은 이제 '사업체를 경영하는 것'이 된다.
당신이 사업체를 소유하면 누군가의 직원일 때보다도 권한이 줄어든다.
사업을 시작한다면 적어도 수백 가지의 이유로 누군가로부터 뼈저린 거절을 경함하게 된다는 사실을 명심하라.
좋은 아이디어도 실패할 수 있고 나쁜 아이디어라 해서 성공할 수 없는 것은 아니다.
사업 아이디어 자체는 아무런 가치가 없으며, 사업 아이디어로부터 보상받으려는 생각은 부질없다.
사업을 하게 되면 좋아하는 일을 즐길 시간이 적어질 수밖에 없다.
만약 당신이 최고 수준의 급여를 약속하지 못한다면 최고 수준의 직원을 채용하기 어려울 것이고, 당신은 보통 수준의 지원자에 만족해야 한다.
직원들은 당신의 모든 것이라 할 수 있는 사업의 성공과 실패를 좌우하는 중요한 패를 가지고 있다.
시간은 돈보다 가치 있는 자원이다. 돈은 모을 수 있지만 우리가 쓸 수 있는 시간은 그저 사라질 뿐이다.
사업을 성공시키는 데 필요한 블록 조각을 얻으려면 먼저 '충분히 경험하라'. 너무 늙어서 배울 기력이 없다는 말은 절대로 하지 마라. 인생이라는 학교는 끊임없이 배우는 과정이다.
만일 아무런 인맥이 없다면 당신은 좀 더 많은 친구들(바라건대 부유하고 인맥이 좋으)을 사귀어야 한다. 당신이 현재의 직장을 그만두겠다고 결심하기 전에 말이다.
사업가가 된다는 것은 일찍이 본 적 없던 최고 난이도의 롤러코스터를 타는 것과 같다. 무엇보다 당신은 당신 돈을 들여 롤러코스터를 손수 만들거나 사야 할뿐더러, 그것을 만들면서도 직접 타기 전까지는 어떤 모양일지 알 수조차 없다.
사업이라는 롤러코스터는 세상에서 탑승 시간이 가장 길고 한 번 올라타면 중간에 빠져나올 수 없다는 말은 굳이 하지 않겠다.
당신이 좋은 상황을 즐기는 동안, 나쁜 상황은 악화되어 당신의 모든 것을 위험에 빠뜨릴 것처럼 보일 것이다.
실제로 사업은 행운에 좌우되는 경우가 많지만, 행운은 신속하게 의사결정을 내리고 직접 팔을 걷어붙이며 일에 전력을 기울일 때만 가능하다. 기적이나 비전 선언문, 그럴싸한 소망이나 바람만으로는 결코 사업을 성공시킬 수 없다.
사업 초기 단계에 있는 사업가들 거의 모두가 사업을 시작하고 운영하는 비용을 과소평가한다는 사실이다.
그들은 사업가들이 사업 개시 후 곧바로 매출을 일으킬 수 있다고 기대한다면 향후에 경악을 금치 못할 거라고 경고한다.
사업이라는 모험이 성공하려면 사업에 관한 재무적인 스토리를 이해하고 파악하는 것이 무엇보다 중요하다.
당신이 어느 정도 참신한 아이디어를 찾아내 사업을 시작했다면, 똑같거나 비슷한 아이디어를 가진 사람들이 이미 시장에 수십 명이나 존재할 가능성이 크다.
당신이 성공할수록, 당신이 더 많은 재능을 가지고 있을수록 사업운영은 더 어려워진다.
당신이 책임을 회피하거나 다른 이들을 자주 비난하는 사람이라면, 혹은 자청하여 모든 책임을 맡기보다 다른 사람들과 책임을 나눠 갖는 것을 더 편안해하는 사람이라면 사업가로 가는 길은 매우 힘들고 불편해질 것이다.
직원을 고용할 때 발생하는 또 다른 부담감은 감정적인 것인데, 당신이 직원에 대해 갖는 책임감이 바로 그것이다.
현금 흐름 관리는 사업운영 시 가장 까다로운 업무라서, 세계에서 가장 크고 가장 성공한 기업들조차 사업의 다른 측면은 잘 운영하면서도 이 부분을 관리하지 못해 발이 꼬여 넘어지는 경우가 있다.
사업 추진을 위해 잠재적 리스크와 보상을 평가할 시에는 반드시 최악의 시나리오를 포함한 모든 리스크를 빠짐없이 검토해야 한다.

결론: 이 책을 읽고 나면 (이 책 저자가 입버릇처럼 이야기하는 후렴구인) "지금 다니는 직장이 훨씬 좋아 보이지 않는가? 안 그런가?"에 대해 어떤 대답을 내릴지는 안 봐도 블루레이다. 창업을 생각한 사람들에게 조건없는 필독서로 추천한다!

토요일, 4월 19, 2014

[B급 프로그래머] 4월 3주 소식 정리

간단한 공지 하나: 혹시 다른 사람들과 나누고 싶은 개발 관련 소식이 있으면 트위터 @jrogue로 mention 부탁드린다.

  1. 웹/앱 개발
  2. 개발/관리 도구
  3. 고성능 서버/데이터베이스
  4. 기타 읽을거리
EOB

수요일, 4월 16, 2014

[독서광] 확신의 덫

간만에 경영/경제 블로그다운 멋진 책 한 권을 독자 여러분께 소개하려 한다. 오늘 소개할 책은 지난번 소개드린 기업을 죽이고 살리는 리더 간의 갈등 관리와 유사한 주제를 다루지만 좀더 기업 현실에 초점을 맞춘 '확신의 덫'이다. 이 책이 다루는 주제는 리더 간의 갈등이 아니라 상사와 부하 직원 사이에서 벌어지는 갈등과 오해 상황이다. 물론 좀더 넓게 봐서 상사와 부하뿐만 아니라 선생님과 학생, 부부, 부모와 자식 사이에도 적용 가능한 내용으로 봐도 좋겠다.

이 책은 뛰어난 관리자와 상사들이 어떻게 부하 직원을 망치기 시작하고 그 결과가 어떤지 다양한 사례와 이론을 들어 설명하고 있다. 대다수 관리자들은 부지불식간에 (어떤 면에서는 선의로) 성과가 나쁜 부하 직원을 돕든다는 명목하게 통제에 들어가는 유혹에 쉽게 빠지는 데, 부하 직원은 자신이 열등하다고 낙인찍은 상사의 기대를 저버리지 않기 위해(응?) 성과를 떨어뜨리는 동시에 관리자의 불공정함과 쪼잔함에 대한 불평불만을 주변 사람들에게 퍼트리기 시작한다. 결국 이런 악순환이 거듭되면서 점차 강도가 높아지며 서로를 나쁜 놈으로 프레이밍한 결과 최종적으로 상사와 부하 직원 모두가 패배자가 되는 결과를 초래한다. 독자에 따라 다르겠지만, 이 책은 아주 지루하다는 느낌이 들 가능성도 있다. 이 책에서 엇비슷한 사례와 비슷한 내용이 반복되는 이유는 관리자들이 자신의 문제점을 깨닫게 만들기 위해 저자들이 거의 필사적으로 설득 작업에 나서기 때문이다. 모두가 패배자로 전락하는 문제는 관리자와 부하 직원이 손에 손을 잡고 함께 만들었지만, 문제를 시작하고 해결하는 열쇠는 관리자가 쥐고 있기 때문에 관리자 입장에서 문제를 인식하느냐 마느냐가 무엇보다 중요하다. 몰라서 생기는 문제가 아니라 안다고 착각하기 때문에 생기는 문제이기 때문에 세상을 바라보는 관점 자체를 바꿔야 한다. 이게 얼마나 어려운지는 더 이상 언급하지 않겠다.

자, 문제의 원인과 미치는 파장을 알았다고 치자. 현 상황을 파악했으면 해결에 나서야 한다. 이 책에서는 현재까지 연구된 다양한 심리학적인 연구 결과를 바탕으로 관리자와 직원 모두가 패배한다는 필패 신드롬에 빠지는 이유와 여기서 벗어나 건설적인 관계를 만드는 해법을 설명하고 있지만, 아니나다를까 책에서 제시하는 실천이라는 난제는 어렵고 험난하기만 하다는 생각이 든다. 책 가장 마지막 부분에 배움을 잃어버린 사람들에게 강력하게 경고하는 다음과 같은 가슴 뜨끔한 경구가 나온다.

반드시 배워야할 필요는 없지만, 반드시 살아야 할 필요도 없다. - 품질 전문가 애드워드 데밍

수 많은 관리자들이 테니스/골프를 비롯한 육체적인 운동에 엄청난 시간을 쏟고 인맥 쌓기와 정보 수집에 엄청난 시간과 노력과 정열을 투자하는 반면, 자신의 부하 직원들과 소통하며 상승작용을 높이기 위해 어떤 노력(아니면 어떤 반대 노력)을 했는지 되돌아보면 거의 절망적인 생각이 들지도 모르겠다. 자기 합리화를 위해 '게으르고, 느리고, 능력이 부족하고, 건방지고, 자기 통제가 안 되는' 직원 탓만 늘어놓고 있다면 해당 관리자나 상사는 '필패 신드롬 상'을 받을 후보로 손색이 없다.

결론: 2014년 상반기 #1 추천 도서로 평가한다. 당신이 또라이 상사 아래에 있다면 이 책을 2번 읽어라. 당신이 부하 직원들에게 지극히 공정하고 합리적인 관리자나 상사라고 생각 착각한다면 이 책을 10번 읽어라.

EOB

토요일, 4월 05, 2014

[B급 프로그래머] 4월 1주 소식 정리

이번 주는 아주 푸짐한 소식으로 여러분들을 찾아 뵐 수 있어 만족스럽다. :)

  1. 웹/앱 개발
  2. 개발/관리 도구
  3. 고성능 서버/데이터베이스
  4. 기타 읽을거리
EOB

금요일, 4월 04, 2014

[독서광] 만화와 함께 하는 즐거운 통계학

간만에 수학책 하나 소개하겠다. 그런데, 일반적인 수학책은 아니고 _만화_로 표현한 _통계학_ 책이다. 만화와 통계학이라는 서로 어울리지 않는 단어가 어떻게 하나로 합쳐지는지 참으로 궁금한 독자를 위해 일단 본문 중 내용을 에이콘 출판사 책 소개 페이지에서 가져와봤다.

따분한(통계 시간에 졸다가 'C'를 받은 기억이 아직도 생생하다. T_T) 통계 관련 내용을 알기 쉽게 풀어 설명하기 위해 만화 형식을 빌었는데, 중간 중간 나오는 위트가 보통이 아니다. 수식만 나오면 '아아악' 비명을 지르며 도망가는 장면은 이 책의 전매 특허로 자리잡아도 될 것 같다. 물론 기분 좋게 읽고 나서 아무 것도 남지 않는다면 허무하기에 부록 '수학 동굴'에서 수학적인 관점으로 본문에 나왔던 용어와 설명을 수식을 사용해 정리하고 있으므로, 본문 중간 중간이나 책을 한번 다 읽고 나서 이론적으로 이해하는 작업을 도와준다.

이 책은 모집단을 모두 알 수 없는 상태에서 표본을 수집하고 해석하기 위한 기초를 쌓는 '통계치 모으기'와, 정규분포와 중심 극한 정리를 시작으로 통계치를 바탕으로 추론하고 신뢰구간을 계산하며, 가설을 검증하는 '모수를 찾아서'라는 두 부분으로 나눠진다. 따분한 공식이나 정리로 이뤄진 일반적인 통계학 교과서와는 달리, 우리가 무엇을 하고 싶은데 어떻게 해야할지를 단계별로 나눠 이해하기 쉬운 예를 들어 설명하므로 일단 이 책을 읽고 나면 일상 생활에서 흔히 접하는 기초적인 통계 용어가 나오더라도 뒤에 숨은 뜻이 무엇인지 파악할 수 있을 것이다(직설적으로 말하자면, 통계의 장난에 덜 속게 된다!).

이 책에서 가장 마음에 들었던 부분은 통계의 본질적인 숙명에 대해 명확하게 설명하는 다음 내용이다.

통계가 목표로 하는 것은 확실성이 아니라 확률이다.

위에서 정리한 문구 하나만 기억하더라도 세상의 많은 오해가 풀리리라 생각한다.

결론: 통계를 처음 접하는 분들이나 기초적인 내용은 알지만 한걸음 더 나가고 싶은 분들께 강력 추천한다. 호기심으로 책을 잡는 순간 내려 놓기가 곤란한 자신을 발견할 것이다. :)

EOB