
Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
김우근
Spring에 테스트를 넣는 방법을 알려드립니다! 더 나아가 자연스러운 테스트를 할 수 있게 스프링 설계를 변경하는 방법을 배웁니다.
초급
TDD, 소프트웨어 테스트, unittest
スプリングとJPAを少し扱うと思ったあなた、今後成長するために何を勉強する必要がありますか? もしデザインの勉強をしてみようとデザインパターンを勉強しながらパターンを無作為に暗記しておられませんか?お手伝いします!
ジュニア開発者が多くするミス校正
ジュニア開発者がスプリングを使って多くの間違いを修正
依存性/Entityなどに関する誤った誤解を修正
実務に必要な概念の整理(MSA、ACLなど)
バックエンド開発者に必要なインフラ/ネットワーク概念の整理
Spring環境でオブジェクト指向のコードを作成する方法(TDAなど)
成長する方法を探しているジュニア開発者なら?
効果的なレベルアップのためのすっごい誤解ノート!
「今何を勉強するべきですか?どんなスタックを学ぶと役に立ちますか?」
「インフラ側を掘り下げればいいのか? Spring Securityを学びましょうか?」
あなたが技術や特定の概念を無作為に本を買って勉強しないようにお手伝いします。インフラストラクチャ(NoSQL、Message Queue...)やSpring securityなどの技術スタックを勉強することが、あなたの開発能力の向上につながるわけではありません!実践でき、必要な内容だけをすっぽり拾って短い時間内に説明した講義です。
長年のコードレビューをしながら経験した、ジュニア開発者の方々が多くする開発ミスを訂正していきます!
依存性注入と依存性逆転の違いを説明できますか?機械的に覚えたあいまいな概念を正します。
テストコードがなぜ必要なのか、なぜテストコードを書くのが良い設計につながるのか教えてください。
会議の内容を追い出すのは難しいですか?実務に必要な概念を整理します! (MSA、ACLなど...)
...上位階層(ポリシー決定)が下位階層(詳細)に依存する伝統的な依存関係を反転(逆転)することにより、上位階層を下位階層の実装から独立させることができる。 (ウィキペディア「 依存関係逆転原則」中)
それで、これはどういう意味ですか? 🙄一つも触れない百科事典式問答解説は答えではありません!
正確な概念を自分の言語で解いて説明できるように知っておく必要があります。
これまでメンターの立場になって本当にたくさんのジュニア開発者の方々に会ってみましたようです。そして、この方々のメンターになり、毎回同じ質問に同じ回答を差し上げ、このような内容を専門的に扱う講義が一つほどあれば良いと思うようになりました。この講義は、ジュニア開発者の方々のメンターになっていた共通の質問・回答を集めた講義です。
私が見てきたジュニア開発者の方々の状況はほとんど以下の通りでした。
ところで、この次のステップが何になるべきかわからないんですよ。 🤷♂️それでも残りの時間... 何でも勉強しなければならないので、会社で使うインフラ技術スタックであるNoSQL、Message Queue、RDBを勉強したり、最近トレンドという新しい言語を勉強します。もちろん私もそうでした!
はっきり知っていますが、説明が難しい概念はありますか?依存性の逆転とは何ですか? Entityとは何ですか?サービスとは何ですか?シーケンシャル指向プログラミングとプロシージャ指向プログラミングは何がどう違いますか?知っていますが、正しく説明できない概念をしっかりつかみます。
GNOMEのTDD、DDD...学習するのはとても良いです。とても素敵な理論なのは分かりますが、代替これを実務にどのように適用するのでしょうか?具体的には、スプリングフレームワークにどのようにTDD、DDDを適用するのですか?
TDD関連の本もたくさん探して関連セミナー映像もたくさん探してみますが、ちょうど入門者の好みに合うほど簡単な例だけを扱っています。実際にはどのように適用すればいいのかお知らせします。
デザインに興味のあるあなた、もしデザインの勉強をしてみようとデザインパターンを無作為に暗記しようとしませんでしたか?だからふとこんな気がします。例として出てきたコード... これは実際に実務で適用できるのか?
でも知ってみると、デザインパターンで重要なのはパターンがどのように見えるかではありません!依存関係を特定し、どのように依存関係を弱くするかが重要です!
講義を聞いてから思わず書いた用語、聞いたが明確に定義できなかった言語に対する定義と語源、意味まで理解できるようになりました。このような内容を知らなくても開発に問題はないかもしれませんが、オブジェクトの行動と役割に悩み、各レイヤーの意味を悩み、よりOOPにコーディングしようとする姿勢を作ってくれました。直接悩んだ内容をジュニアの目の高さで、わかりやすく説明してくださったので、もっと触れて楽に聞くことができました。私がそうしたように、今入社したばかりのジュニアバックエンド開発者であれば、何を知らないのか、どこまで知るべきかさえ知らず、ヘメイすることが多いと思います。このような状況でどんな内容をもっと勉強しなければならないのか、私が知らなかった部分が何だったのかが分かり、アシスタントになってくれた講義でした。 (イ*ギュ)
普段深く考えていなかった部分まで教えてくれる良い講義のようです。ジュニア開発者として最近会社でしながらいつも同じことだけしながら成長しているのが正しいという悩みをしていたのですが、講義を聞いて方向性について知ることができました。 (シン・ホ)
最初に会社に入社したら、どのように開発すれば良いのか、どうすれば開発する際のミスを減らせるのかといった悩みを多くすることになります。この講義は、このような悩みを解決してくれ、ジュニア開発者が正しく開発ができるように方向をよく取ってくれる良い講義だと思います。業務的な知識以外にも「オブジェクト指向的にアーキテクチャを設計するにはどのようにすればいいのか?」、「DTO、VO、Entityは実務ではどのように区別して使うのか?」、「テストコードを本当に作成しなければならないのか?」などジュニア開発者が開発しながら難しくなりました。また、実務でよく使われる用語も学ぶことができ、実際の業務適応に役立つと思います。実務に慣れていないジュニア開発者や成長のためのすべての開発者におすすめの講義です。 (イ・チャン)
開発者として、現業で使用するオブジェクト指向の重要な概念を習得するのに多くの助けになりました。難しい概念も図式化が良くなっていて簡単に理解でき、むしろ簡単に説明してくれて一度聞いた後、概念が長く記憶に残りました。 (芯・鉄)
予備受講生の皆さんは、シーケンシャル指向プログラミングとプロシージャ指向プログラミングの違いをご存知ですか?気になる場合は、無料で公開されたオリエンテーション映像を見て、どのような内容を学習するかを見てみましょう。
概念が何であるかを正確に理解すると、目に見えるものがはるかに多くなります!徹底的に低年次視線で不思議な内容を探しています。
ジュニア開発者が多くする開発ミス校正
最初の会社に入社したときに多くのコンベンションミスからオブジェクトが何であり、オブジェクト指向的にコードを織るためにはどんなことを気にする必要があるのかを学びます。そして、良いデザインを理解するために依存関係が何であるかを学びます。
スプリングをOOPで使用する
スプリングをOOPで使用する方法を学ぶために、逆にOOPで使用できなかったケースを見てください。そしてサービスとは本質的に何であり、各レイヤーをどこまで抽象化すべきかを調べましょう。
テストはなぜしなければならないのか?
テストコードが必要だと言われていますが、いざテストコードの作成がなぜ良い設計につながるのかがわからないと思いますか?テストはなぜ必要なのか、もう少し実践的な観点から説明します。そして、どうすれば自然なテストができるのかをお知らせします。
実務に必要な概念の整理
スプリングだけ知って実務をするには周辺に編まれたインフラ知識が多すぎます。会議の時間にネットワーク、インフラストラクチャの話だけが出てくると、何を言うのか探して忙しいか愚かな方が多いです。だからといって、インフラやネットワークの勉強をするために専攻書籍を再び広げるべきでしょうか?ちょうど実務に必要なレベルに要約します!
授業別約15~20枚からなるPPT約20個を学習資料として提供します。また、別の練習環境を必要としません!出退勤路地下鉄でわずか20分だけ投資して勉強できるよう講義を構成しました。
現在カカオで働いていて、作るのが好きなので、退勤後も常に何かを開発しています。 「巨人の肩の上に立った小人」という言葉があります。私もやはり小さな小人だけですが、上がった巨人の成長に役立つように知識の対峙に努めています。多くのジュニア開発者を指導した経験があり、あなたの成長を助けることができます。
Q. 非専攻者も聞ける講義ですか?
講義は基本的なコンピュータ工学の知識を知っていることを前提としています。ただし、専攻知識を知っていなければならない区間が非常に短いため、選手知識で求められるJava、Spring、JPAを知っており、以下の内容を既に知っている状態であれば十分に受講できます。
Q. 詳細な概念説明は地揚だというが、では何を教えてくれるというのでしょうか?
概念の説明は、できるだけ3行の要約で終わることができるようにします。もちろん、MSAやOAuthなどの複雑な内容は、進行の流れがどのようになるかを説明します。代わりにOAuthの誕生と背景、OAuth 1.0、2.0 こんな詳細は取り上げないという意味です!とにかく実務では2.0を使うからです。そして実務者の立場ではトークンがとにかくsignatureがどうしてこういうよりはAPI通信でどんなデータをやりとりするのかがもっと気になりますからね。
さらに質問するには、曖昧なマイナーな用語も説明し、進む必要があります。例えば、私のような場合、初めて入社した当時CS
という用語を知らず、会議の内容を追いかけて困った経験があります。ところでCSをGoogleで検索すると?何か一つ一緒に触れる意味ではありません。実は고객 문의
だけなんですけどね!
Q. 概念説明をしてくれる映像やブログ投稿が多いのになぜこの講義を聞かなければなりませんか?
はい、そうです。実際、YouTubeやブログに良い文章や映像がすでにあまりにも多いです。しかし、ジュニアの皆さんは何を知らないのか分からない状態の方がはるかに多いです。バックエンド開発者として就職したのですが、インフラ/ネットワーク用語が出てくるたびにバンチシの方におられます。それでは、インフラを勉強する必要がありますか?とどんな内容なのかひとつも分からない、専門家向けの厚い本を一つ買って、理解もできないままクビの読みです。あまりにも効率的ではありませんか?
この講義は、急速な成長を助けるスターターパックのような講義と見なすことができます。加えて、ブログ記事をより見ると、大学生レベルでティーストーリーに勉強した内容を記録することが多く、誤った概念が書かれている場合がかなり多いです。たとえば、一部のブログ投稿では、DTOがDAOを使用してDBに保存するために使用されるオブジェクトであることを知らせる記事もありました。
Q. この講義だけの差別化された点は何ですか?
ほとんどのレッスンが設計についての内容は扱っていないようです。この講義では、良いデザインが何なのかについて、講演者次第の定義を説明しています。
設計に関連する講義が多くないのは、知識共有者の方々がみんなにぎこちないからだと思います。ご存知のように、良い設計には答えが決まっていません。ところで講義を制作する人の立場では正確な知識を客観的に伝えなければならないので、答えが決まっていない主題を本能的に避けることになるのです。それで、デザインに関連する講演は、せいぜいSOLIDが何なのか、デザインパターンがどのように見えたのか一つ一つ振り返るレベルなのです。自分なりに定義した良い設計が何なのかを説明しますので、コメントを一度聞いていってください。
Q. 良いデザインが何であるかを定義できない場合、知識共有者はどのように良いデザインを講義できるのでしょうか。
はい、良いデザインの定義を下すことができないので、講義で私が定義する良いデザインは私の個人的な定義です。しかし、事実、すべての非文学の書籍や講義は、他人の意見を聞いて、論理的に共感されれば受け入れる過程だけだと思います。それでも可能であれば、できるだけ客観的に解放しようと努力したので納得になれば収容し、そうでなければ本人だけの良い設計を新たに定義してみるのも良いようです。
📢受講前に確認してください!
学習対象は
誰でしょう?
知らない概念が多くて会議を追いかけていない方
設計に興味のある方
入社しましたが、開発をどうすべきかわからない方
なぜテストをするのか気になった人
ばねの特徴を機械的に覚えた方
私がスプリングを正しく扱っているのか気になった人
新規入社者
成長したい開発者
前提知識、
必要でしょうか?
Javaコードを理解できる方
Spring Base (Controller/Service/Repositoryが何であるかを知っている方)
JPAを少し使ってみた方
3,466
受講生
250
受講レビュー
47
回答
4.9
講座評価
2
講座
현재 카카오에서 일하고 있고, 만드는 것을 좋아해서, 퇴근 후에도 항상 무언가를 개발하고 있습니다.
"거인의 어깨 위에 선 난쟁이"라는 말이 있습니다. 저 역시 한낱 작은 난쟁이일 뿐이지만, 올라탄 거인의 성장에 도움이 될 수 있도록 지식의 대물림을 위해 노력하고 있습니다. 다수의 주니어 개발자분들을 멘토링 한 경험이 있어서 여러분의 성장을 도와줄 수 있을 거예요.
깃허브 > https://github.com/kok202
블로그 > https://kok202.tistory.com
全体
25件 ∙ (4時間 8分)
講座資料(こうぎしりょう):
全体
76件
4.9
76件の受講レビュー
受講レビュー 5
∙
平均評価 5.0
5
개발 실력의 추월 차선과 같은 강의입니다. 베테랑은 똑같은 작업을 하더라도, 더 깊은 지식과 넓은 시야로 다른 결과물을 만들어 냅니다. 저는 이것이 연차의 무서운 점이라고 생각합니다. 이 강의는 오랜 연차로 쌓을 수 있는 지식과 테크닉들을 전수해줍니다. 강사분의 개발에 대한 집요한 집착과 다양한 경험으로 쌓아낸 귀한 정보나 테크닉들을 저 같은 초보자들을 위해 친절히 소개해줍니다. 처음 봤을 때는 내내 놀라움으로 강의를 보았습니다. 모호하게 느껴지던 개념들을 이젠 말로 설명할 수 있게 되었고, 당장 시키는 대로 객체지향을 더 공부하며 적용하고, 리팩토링을 해보니 프로젝트의 구조가 더욱 깔끔해졌습니다. 처음 강의를 보았을 때는 아직 경험이 적어, 말씀주신 내용들을 다양하게 적용해보지는 못 했습니다. 이후, 새로운 프로젝트를 하며 이 강의가 떠올랐습니다. 강의를 다시 보며 알려주신 내용들을 적용해보니, 스스로 느끼기에 이전과는 비교할 수 없을 정도로 개선된 코드가 나왔고, 프로젝트 멘토님이나 팀원들이 다들 읽기 좋고 잘 짠 코드라고 칭찬해주었습니다. 이 강의는 시야를 넓혀주는 강의라고 생각합니다. 단순히 잘못된 점을 바로잡고, 고수의 노하우와 지식들을 전수 받을 수 있는 것을 넘어 어떤 선택을 할 때, 초보에겐 보이지 않는 다양한 선택지들을 알려주는 감사한 강의라고 생각합니다.
受講レビュー 24
∙
平均評価 5.0
受講レビュー 21
∙
平均評価 5.0
受講レビュー 4
∙
平均評価 5.0
受講レビュー 11
∙
平均評価 4.6
期間限定セール
¥44,550
25%
¥7,004
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!