전체 글 87

신입사원 점수따기, 사수에게 똑똑하게 질문하는 7원칙

1. 정확하고 구체적으로 질문하자. 하고 싶은 것, 시도해본 것, 에러의 내용을 구체적으로 공유할 것 에러에 대한 질문은 에러 메시지를 반드시 같이 올릴 것 정확한 용어를 사용하여 질문할 것 "ㅇㅇ 잘하시는 분 계신가요?" ❌ → "제가 ㅇㅇ로 이렇게 해봤는데 잘 안됩니다. 어디가 잘못된 걸까요?" 👍 2. 코드 공유도 기술이다. 일부만 봐서는 알 수 없는 코드를 일부만 공유하지 말 것 필요없는 부분까지 전체를 공유하지 말 것 글자가 잘 안 보이는 사진이나 돌아간 사진을 올리지 말 것 윈도우/맥 캡쳐 기능을 활용하자. 3. 간단한 질문은 검색이 먼저다. 최소한의 노력도 없이 인터넷 검색하듯이 질문하지 말 것 답변자의 시간도 소중하다. 구글에서 "how to"나 "what is"로 시작하는 검색문으로 검색..

좋은 사수, 주니어도 좋은 답변자 되는 방법

신입사원 때는 답변하는 일보다 질문하는 일이 더 많을 것이다. 하지만, 입사 후 1년만 지나도 또 다른 신입사원이 생긴다. 이때부터는 나도 부족하지만^^... 나보다 더 병아리에게 답변하는 일이 종종 생기기도 한다.. 어떻게 대답해야 좋은 대답이 될까? 이 고민을 1971년에 이미 파악하신 훌륭한 분의 생각을 발췌하여 번역해보았다. 시간이 없는 분들을 위해 요약도 해놓았으나, 되도록 한번쯤은 전문을 읽어보는 것을 추천합니다😍#생각보다 꽤 큰 울림을 준답니다! 요약(*의역있음) 좀 안다고 거들먹거리면서 말하지 마라 직설적으로 말하는 것이 그 사람을 위한다고 넘겨짚지 마라 프로그래밍에서는 똑똑할지라도 사회적 행동이나 대화방식을 고칠 수 있을 정도로 똑똑한 것은 별개이다. 기계적인 말투로 답하지 마라 비관적인..

프로젝트, 패키지, 메소드, 클래스 네이밍 규칙

다들 자바 프로젝트를 하면서 한번 쯤은 혹은 여전히 고민하고 계실 네이밍 규칙 Tip을 공유합니다. 공통 대소문자가 구분되며 길이에 제한이 없다. 예약어를 사용해서는 안 된다. 숫자로 시작해서는 안 된다. 특수문자는 '_' 혹은 '$'만 허용한다. 파스칼 표기법(PascalCase)과 카멜 표기법(camelCase)을 사용한다. 반의어는 반드시 대응하는 개념으로 사용해야 한다. 1. Project(프로젝트) 대/소문자 구분없이 시작 가능하다. 대문자 사용을 권장한다. 2. Package(패키지) 패키지명은 대소문자를 모두 허용 하지만 클래스명과 쉽게 구분하기 위해서 소문자로 하는 것을 원칙 으로 하고 있다. 표준 패턴을 따른다. Ex) [com].[Company].[Project].[toppackage]..

성장형 개발자가 피해야 하는 실수

열심히 하는데 왜 결과가 다르지 않을까요? 결과가 좋지만 왜 미친 듯이 열심히 하지 않는 친구와 결과가 비슷할까요? 성장하는 개발자가 되기 위해 어떤 것들을 주의해야할 지 주변 시니어분들께 들었던 경험담과 많은 분들께서 조언해주신 내용을 바탕으로 정리해봤습니다. 1️⃣ 스펙을 쌓기 위해 무조건 다 열심히 하는 것 목표를 먼저 정하고, 그 목표에 도달하는 데 도움 되는 것을 우선으로 해야 한다. 👩🏻‍💻개발자는 평생 공부해야한다는 말이 있는 것처럼 공부할 분량이 끝없다는 것을 짐작할 수 있습니다. 하지만, 취준과 이직준비를 하다보면 한 없이 부족한 자신의 모습을 마주할 때가 많은데요. 최근 이직을 준비하며, 연차에 비해 아는 것이 너무 없다는 생각을 하루에도 수천백씩 하다보니 스스로에게 스트레스 주게 되었..

객체지향 패러다임, 데이터와 행동으로 이해하다.

어떤 설계가 좋은 객체지향이라고 할 수 있을까요? 객체지향설계에서 가장 중요한 것 객체지향에 수 많은 고민을 하다가 알게 된 사실은 데이터 중심사고 + 행동 중심 사고를 적절하게 조합하는 것이다. 그럼 이 두가지가 어떻게 다른지 예제를 통해 확인해볼까요? 데이터 중심사고 class Car { private Frame frame; private Engine engine; private List wheels; private Direction direction; private Speed speed; } 가장 많은 보셨을 패턴이죠? 아마 대부분 class 개념을 처음 배울 때 실습을 하면서 만들게 되는 코드는 이런 모양일 겁니다!! 부분 부분 필요한 부품에 따라 도메인을 분리해놓은 것을 볼 수 있습니다. 행동 ..

객체지향을 위한 생활체조, 클린코드를 지향합니다.

객체지향언어를 가장 객체지향스럽게 쓰기위해서 아래와 같은 노력이 필요하다. - 익숙하지 않더라도 의식하며 적용해보자 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다. for 문 내부에서 if 문이 포함되는 순간 2 indent 가 된다. else 예약어를 쓰지 않는다. 모든 원시 값과 문자열을 포장(VO)한다. 한 줄에 점을 하나만 찍는다. 줄여 쓰지 않는다(축약 금지). 모든 엔티티를 작게 유지한다. 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않 는다. 일급 컬렉션을 쓴다. 무의미한 getter/setter/프로퍼티를 쓰지 않는다. Getter 대신 메시지에 직접 보내기 https://tecoble.techcourse.co.kr/post/2020-04-28-ask-instead-of-g..

정확히 모르고 쓰면 사수한테 등짝 스매시 맞는 Thread, 당신도 모르는 사이 쓰고 있었다?

자바를 처음 공부하게 되면, 마지막 즈음에 배우게 되는 Thread라는 개념이 있다. 취업을 하고, 실무에서 spring, spring boot를 다루며 직접적으로 Thread라는 코드 본 것은 약,, 1-2번? 이었던 것이었다. 분명 자바 배울 때 배웠던 개념인데 실무에서는 별로 중요하지 않은것인가? 하는 - 이상한 호기심이 생겼다. Thread? 그거 왜 씀? 자바에서 여러가지 일을 동시에 처리하기 위해 사용한다. 저는 멀티가 안되는 사람이라... 한 번에 한가지 일 밖에 못하지만,... 컴퓨터는 똑똑하니까 한 번에 여러가지 일을 하면 당연히 효율적이잖아요? ◠‿◠ 들어가기 전에... Thread를 알아보기 전에 꼭 알아야 더 잘 Thread를 이해할 수 있는 Process를 먼저 알고 갑시다.ᐟ.ᐟ..

취업 멘토링 콘서트, 나 자신을 알라!!

취준하면서 Intro나의 미래 모습을 구체적으로 그릴 수 있는가하고 싶은 일(직업/회사/직무)은 정했는가나의 강점/보완점을 잘 설명할 수 있는가 실전을 통해, 직업 Fit 이해하기잡핏은 실전을 통해 찾아야 한다3 ~ 5년 이내 주니어라면, 직무의 이동은 충분히 가능하다.(커리어 외의 관심, 경험 쌓기)정규직으로 취업하더라도, Fit이 안 맞는다면 1년이 가까워졌을 때 이직 알아보기(3년 채워야지..x)아직은 최대한 다니면서 하기전/현직자 분들과 지속적 네트워킹, 피드백 받기(너무 자주x, 종종 연락드리며 업데이트)링크드인 콜드 메시지Mindset정해진 길, 주어진 시험에서 고득적하는 삶 x스스로 설계하는 삶불안함이 nomal 값한 번에 찾기 어렵다결국은 내게 맞는 직업찾기 재능 발견에서만큼은 자신을 밝게..

[습관트래킹] 학습법 습관만들기, 사랑하는 것처럼

문득, 그런 생각이 들었다. 누군가를 좋아할 때 우리는 어떤 모습이었나? 계속 생각나고, 어떤 걸 좋아하는지, 어떤 걸 하고 있는지, 왜 그런 행동을 하고있는지.. 등 그 사람을 향한 수많은 관심을 갖게된다. 공부도 똑같은 것 같다..(?) 자료구조라는 것을 사랑하고, 자바는 왜이렇게 쓰이게 되었는가를 호기심을 갖고 애정하다보면 생각보다 공부란 건...꽤 흥미로운 것일 수도 있겠다ㅎ 습관트래킹시작한 지 얼마 안됐지만, 좋은 아이디어가 있어서 남긴다.ᐟ.ᐟ 모든 시작은 습관이라고 한다. 조금씩 꾸준하게 습관을 만드는 것부터가 진짜 학습의 시작이 아닐까 하는 생각이 들었고, 당장 10월부터 실천에 옮겼다. 조금은 빡빡하고 버거운 스케줄이긴 하지만... 하다보면 인간은 적응의 동물이기 때문에... 충분히 할 ..

지금까지 당연하게 쓰던 Java8, 함수형 프로그래밍으로 다시 이해하기

자바 프로그래밍은 익숙하지만 Java 버전에 대해서는 무지했던 것 같다. 아무생각없이 안정화된 버전을 사용하고, 막상 해당 버전에서 갖는 특성을 이해해볼 생각은 하지 않았다. 그럼 Java8은 어떤 특징이 있을까? Lambda Expression java8 부터는 람다표현식(람다식)을 지원합니다. 아마도 java8 이전버전을 사용하시던 분이라면 람다식이 익숙하지 않으실 수 있는데 사실 람다식, 또는 람다함수는 java8에서 처음 나온 개념이 아닙니다. 람다식은 수학 람다 계산법에서 사용된 식으로 프로그래밍 언어로서는 LISP에 첫 도입이 되어 이후 C#, Scala, Python 등 현재는 대부분의 언어에서 지원하고 있습니다. 람다식은 익명함수를 지칭하는 용어로서 말 그대로 선언되어있지 않은 함수를 자체..