[ASP.NET MVC] 1. ASP.NET ์†Œ๊ฐœ - .net Framework, .net Core https://www.youtube.com/watch?v=Y_X4A0P06Os

[ASP.NET MVC] 2. ASP.NET MVC Core ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ https://www.youtube.com/watch?v=mMIkH6T3euA

[ASP.NET MVC] 3. _Layout https://www.youtube.com/watch?v=86ehigeqri8

[ASP.NET MVC] 4. Razor Syntax https://www.youtube.com/watch?v=GRHy0FgrJrw

[ASP.NET MVC] 5. Controller์—์„œ View๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•˜๊ธฐ https://www.youtube.com/watch?v=TTQW2ou3w7c

[ASP.NET MVC] 6. EntityFramework Core ์†Œ๊ฐœ ๋ฐ MS SQL Server https://www.youtube.com/watch?v=7PTFfqov1wY

[ASP.NET MVC] 7. EntityFramework Core๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑํ•˜๊ธฐ https://www.youtube.com/watch?v=MNmcTeEv07A

[ASP.NET MVC] 8. ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ https://www.youtube.com/watch?v=negMazMl7WQ

[ASP.NET MVC] 9. Visual Studio 2017 ์„ค์น˜ ๋ฐ 2015 ํ”„๋กœ์ ํŠธ ์—…๊ทธ๋ ˆ์ด๋“œ https://www.youtube.com/watch?v=tyx4Vyj5a_U

[ASP.NET MVC] 10. ๋กœ๊ทธ์ธ ์ž…๋ ฅ Form ๋งŒ๋“ค๊ธฐ https://www.youtube.com/watch?v=492E2t0gxEg

[ASP.NET MVC] 11. ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์˜คํ”„ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ https://www.youtube.com/watch?v=G5AxF9pt4Pw

[ASP.NET MVC] 12. ๊ฒŒ์‹œํŒ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅํ•˜๊ธฐ https://www.youtube.com/watch?v=ryf9ikInHsQ

[ASP.NET MVC] 13. ๊ฒŒ์‹œ๋ฌผ ์ถ”๊ฐ€ํ•˜๊ธฐ https://www.youtube.com/watch?v=6wA9Ilhj6sA

[ASP.NET MVC] 14. ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ธ๋ณด๊ธฐ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ https://www.youtube.com/watch?v=CbnoRYXgw0c

[ASP.NET MVC] 15. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์ ์šฉํ•˜๊ธฐ (feat. Trumbowyg) https://www.youtube.com/watch?v=oOFNh0KM7kU

[ASP.NET MVC] 16. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ https://www.youtube.com/watch?v=7cKA-lEqDjM

[ASP.NET MVC] 17. Enterprise Architecture ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑํ•˜๊ธฐ https://www.youtube.com/watch?v=dKvCZUec100

[ASP.NET MVC] 18. Dependency Injection, IoC Container ์‚ฌ์šฉํ•˜๊ธฐ https://www.youtube.com/watch?v=GWgXbQEOi9Y

[ASP.NET MVC] 19. MVC5์—์„œ Unity Container๋ฅผ ์ด์šฉํ•œ Dependency Injection https://www.youtube.com/watch?v=ac-IQsmaY3M

[ASP.NET MVC] 20. appsettings.json๋ฅผ ํ†ตํ•œ ConnectionString ์ฒ˜๋ฆฌํ•˜๊ธฐ https://www.youtube.com/watch?v=UACohTbIfpM

[ASP.NET MVC] 21. async, await ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ตฌํ˜„ํ•˜๊ธฐ https://www.youtube.com/watch?v=T-XskK2kBmg

[ASP.NET MVC] 22. ASP.NET Core Identity ์†Œ๊ฐœ https://www.youtube.com/watch?v=t9ApesVOalw

[ASP.NET MVC] 23. Identity ์ƒ์„ฑ ํ…Œ์ด๋ธ” PK ํƒ€์ž… ๋ณ€๊ฒฝํ•˜๊ธฐ https://www.youtube.com/watch?v=JnA29XdZnxg

[ASP.NET MVC] 24. ASP.NET Core Identity ๋ชจ๋ธ ํด๋ž˜์Šค ์„ค๋ช… https://www.youtube.com/watch?v=DW7Sl9Q6HBA

[ASP.NET MVC] 25. AccountController ์†Œ์Šค์ฝ”๋“œ ๋ถ„์„ํ•˜๊ธฐ https://www.youtube.com/watch?v=_GZHPPdM3OQ

Chapter 6

ASP.NET MVC

C# DB ํ†ต์‹ 

  1. ADO.NET -Winform, Classic ASP

  2. Enterprise Library 5

  • ์ฟผ๋ฆฌ๋ฌธ์„ ์ง์ ‘ ์ž‘์„ฑ -> ๊ฐ’์„ ์ฒ˜๋ฆฌ
  • Logging

๋‹จ์ : 1,2์˜ ๊ฒฝ์šฐ์ฟผ๋ฆฌ๋ฌธ์„ ์ง์ ‘ ์ž‘์„ฑ์œผ๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์˜ ์†Œ์ง€๊ฐ€ ๋†’์Œ.

#ORM

  • Java JPA๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์ด๋ฒ„๋„ค์ดํŠธ
  • C# EntityFramework 1.0 ~ 7.0 Mapper

#๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ ์ค€๋น„๋ฌผ : Asp.net MVC, MS SQL, EntityFramework

EntityFramework 1.0 ~ 6.0๊นŒ์ง€๋Š” .net Framework (ํ’€๋‹ท๋„ท)์— ์‚ฌ์šฉ ASP.NET Core๋Š” 7.0๋ถ€ํ„ฐ EntityFramework Core

ASP.NET Core 1.x EntityFramework Core 1.1

# ๊ฐœ๋ฐœ๋ฐฉ์‹ EntityFramework

  1. Database First ๋ฐฉ์‹
  • Database DBA(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž)
  • ์„ค๊ณ„ ์™„๋ฃŒ, ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ ๋ชจ๋‘ ์™„์„ฑ๋œ ์ƒํƒœ. => Database ๊ธฐ์ค€์œผ๋กœ Appication ๊ฐœ๋ฐœ
  1. Code First ๋ฐฉ์‹
  • Database ๊ธฐ์ค€์œผ๋กœ Appication ๊ฐœ๋ฐœ ์—ญ์œผ๋กœ => Code -> Database ์ƒ์„ฑํ•ด Appication ๊ฐœ๋ฐœ

MS SQL 2014, 2016

  1. SQL ์—”์ง„
  2. Management Studio 14, 16

MySQL ๊ณผ ๋น„๊ต 1)MySQL ์—”์ง„ 2)Workbench

# MS SQL SA ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ • ์ด์œ 

  1. Web Server์™€ SQL Server๊ฐ€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์ผ ๊ฒฝ์šฐ http://db.example.com:1433

Chapter 7

ASP.NET MVC

# 1. ํ”„๋ ˆ์ž„์›Œํฌ ์—…๊ทธ๋ ˆ์ด๋“œ

-ASP.NET MVC Core 1.1 (##NuGetPackage์—์„œ ์—…๋ฐ์ดํŠธ, www.nuget.org ,๋ฉ”์ด๋ธ๋ฆฌํŒŒ์ง€ํ† ๋ฆฌ์™€ ๋น„์Šท https://mvnrepository.com/)

# 2. EntityFramework Core ์„ค์น˜ ( ##Microsoft.EntityFramework core, Microsoft.EntityFramework core.Server, Microsoft.EntityFramework core.Tools ์„ค์น˜)

CodeFirst ๋ฐฉ์‹์œผ๋กœ Model Class -> DBContext -> ์‹ค์ œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑ

User ๋ชจ๋ธ -> ์‚ฌ์šฉ์ž Note ๋ชจ๋ธ _> ๊ฒŒ์‹œํŒ

User ์‚ฌ์šฉ์ž ๋ฒˆํ˜ธ(PK) ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์‚ฌ์šฉ์ž ID ์‚ฌ์šฉ์ž Password

Note ๊ฒŒ์‹œ๋ฌผ ๋ฒˆํ˜ธ(PK) ๊ฒŒ์‹œ๋ฌผ ์ œ๋ชฉ ๊ฒŒ์‹œ๋ฌผ ๋‚ด์šฉ ์ž‘์„ฑ์ž (์ˆซ์ž - ์‚ฌ์šฉ์ž๋ฒˆํ˜ธ)

# 3. DBContext ์ƒ์„ฑ -> Table ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ.

(##DataContext๋งŒ๋“ฆ) 1. public class AspnetNoteDbContext : DbContext { public DbSet Users { get; set; } public DbSet Notes { get; set; } }

  1.  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
     {
         base.OnConfiguring(optionsBuilder);
     }
    
  2. connectionstring https://www.connectionstrings.com/sql-server/

  3. ๋น„์ฃผ์–ผ์ŠคํŠœ๋””์˜ค์˜ ์ƒ๋‹จ ๋ณด๊ธฐ >Server Explorer ์‚ฌ์šฉํ•ด์„œ Data Source=(localdb)\v11.0;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False

  4. ๋ณด๊ธฐ > ๋‹ค๋ฅธ ์ฐฝ > ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ฝ˜์†” add-migration FirstMigration update-database

# 4. DBContext -> ์‹ค์ œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑ

xml์ฃผ์„ ์‚ฌ์šฉ๋ฐฉ๋ฒ• /// ctrl + ์œ„, ์•„๋ž˜ using ๋ฌธ์—์„œ ctrl + . ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ œ๊ฑฐ ํด๋ž˜์Šค ์กฐ์ธ๋ฐฉ๋ฒ• public virtual, virtual์„ ๊ถŒ์žฅํ•จ

chapter 8

์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…

ํšŒ์›๊ฐ€์ž… -> ์‚ฌ์šฉ์ž ์ •๋ณด ์ž…๋ ฅ -> DB ์ €์žฅ.

๋กœ๊ทธ์ธ -> ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ž…๋ ฅ -> ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋ณด์œ 

spring security ์˜ˆ์ œ์™€ ๊ฐ™์€ ๊ฒƒ

ASP.NET Identity(Securiry) -์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ(์ธ์ฆ) -์‚ฌ์šฉ์ž Role(Admin,User,Poweruser) -SMS ์ธ์ฆ, Email ์ธ์ฆ

Session ์ด์šฉํ•œ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„

๋กœ๊ทธ์ธ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋ก .

# 1. Session

-์›น ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ด์•„๋†“์•„ ๋ณด์•ˆ์„ฑ์ด ๋†’๋‹ค.(์žฅ์ ) -์›น ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€ํ•˜๊ฐ€ ๋†’์•„์ง„๋‹ค.(๋‹จ์ )

# 2. Cookie

-์›น ์„œ๋ฒ„ ๋กœ๊ทธ์ธ -> ์‚ฌ์šฉ์ž ์ •๋ณด -> ๋ธŒ๋ผ์šฐ์ € ์ „๋‹ฌ -> ์ฟ ํ‚ค๋กœ ์ €์žฅ -์›น ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค.(์žฅ์ ) -๋ณด์•ˆ์„ฑ์ด ๋‚ฎ์•„์ง„๋‹ค.(๋‹จ์ )

# ๊ฒฐ๋ก : Cookie

-Cookie๋ฅผ ์•”ํ˜ธํ™” -> ๋ณตํ˜ธํ™” / ์œ„๋ณ€์กฐ์˜ ์œ„ํ—˜ -SSL์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„๋ณ€์กฐ์˜ ์œ„ํ—˜์„ ๋ง‰์Œ

# SSL

  • ์œ ๋ฃŒ 100๋งŒ์› 20๋งŒ์› (๋งค๋…„), ๋ฌด๋ฃŒ

GET : DB์—์„œ ๋ฐ›์Œ http://www.example.com/api/GetBookList?bookNo=1

POST : DB์— ์ „๋‹ฌ http://www.example.com/PostUser

AccountController.cs Register.cshtml

Chapter 9

.net core 2๊ฐ€์ง€ ํŠธ๋ž™

# 1. LST (Long Term Suprot)

๋А๋ฆฌ๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œ .net core ------------1------------1------------1------------1------------1

# 2. Current

๋น ๋ฅธ ์—…๊ทธ๋ ˆ์ด๋“œ .net core ----1----1----1----1----1----1----1----1----1

Chapter 10

๋กœ๊ทธ์ธ

Linq, ๋งค์„œ๋“œ ์ฒด์ด๋‹ https://docs.microsoft.com/ko-kr/dotnet/csharp/linq/

๋žŒ๋‹ค์‹์—์„œ A Go to B u => u

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ์œ„ํ•ด์„œ == ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ //var user = db.Users.FirstOrDefault(u=>u.UserId == model.UserId && u.UserPassword == model.UserPassword); var user = db.Users.FirstOrDefault(u => u.UserId.Equals(model.UserId) && u.UserPassword.Equals(model.UserPassword));

# ๋กœ๊ทธ์ธ์‹œ Validation Required๊ฐ€ ๋‹ค์žˆ์–ด์•ผ ๋˜๋ฏ€๋กœ ์—†์–ด์„œ ์ธ์ฆ์ด ์•ˆ๋จ

Model => ๊ธฐ๋ณธ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค

User -> UserNo -> UserName ID,Password

ViewModel -> ๋ทฐ(View)๋ฅผ ์œ„ํ•œ ๋ชจ๋ธ MVC(Model,View, Controller) WPF(MVVM)

# ModelState ์ƒํƒœ ๋ฉ”์‹œ์ง€ ๋ณด๊ธฐ

asp.net core asp-validation-summary

https://docs.microsoft.com/ko-kr/aspnet/core/tutorials/first-mvc-app/validation?view=aspnetcore-2.1

Chapter 11

# NuGet Package -> Microsoft.AspNetCore.Session ์„ค์น˜

ASP.NET MVC -> IIS(์›น์„œ๋ฒ„) = ์•„ํŒŒ์น˜ -WebAPI ์••์ถ•๊ธฐ๋Šฅ ์ด์šฉ์‹œ ๋‘˜๋‹ค ์„ค์ •ํ•ด์ค˜์•ผํ•จ

ASP.NET Core -> ๋ฆฌ๋ˆ…์Šค, ์œˆ๋„์šฐ, MacOS

# Startup.cs ์—์„œ ๋ฏธ๋“ค์›จ์–ด ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ

        services.AddSession();
        app.UseSession();

๋กœ๊ทธ์•„์›ƒ ์‹œ ์„ธ์…˜์—์„œ ์ง€์›€

Chapter 12

๊ฒŒ์‹œํŒ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ

์•ŒํŠธ+ ์‰ฌํ”„ํŠธ ์•„๋ž˜ ์‰ฌํ”„ํŠธ + delete

Chapter 13

๊ฒŒ์‹œ๋ฌผ

๋กœ์šฐ 12๊ฐœ ์ค‘์— col-lg-4ํ•ด์„œ3๋“ฑ๋ถ„

asp.net core HttpContext.Session

https://benjii.me/2016/07/using-sessions-and-httpcontext-in-aspnetcore-and-mvc-core/

Chapter 14

๊ฒŒ์‹œ๋ฌผ ์ƒ์„ธ๋ณด๊ธฐ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

http://www.example.com http://www.example.com/{noteNo} http://www.example.com/Note/Detail?noteNo=1

# Trumbowyg ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—๋””ํ„ฐ

github javascript editor

https://alex-d.github.io/Trumbowyg/?utm_source=tool.lu

https://summernote.org/

Chapter 15

NPM Node Package Manager

Node.js

# bower

ํ”„๋ก ํŠธ์—”๋“œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €

CLI (Command Line Interface)

trumbowyg ์‚ฌ์šฉ

https://alex-d.github.io/Trumbowyg/documentation/

Superscript: ์œ„์ฒจ์ž

Chapter 16

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ…์ŠคํŠธ ์—๋””์–ด ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ

ctor ํƒญ 2๋ฒˆ

@๊ธฐํ˜ธ๋กœ ์ด๊ฑฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์ธ์‹ํ•˜๋„๋ก http://ko.cppreference.com/w/cpp/language/escape

@๊ธฐํ˜ธ๋กœ ์ด๊ฑฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์ธ์‹ํ•˜๋„๋ก

trumbowyg.upload.js์˜ ํŒŒ์ผ ์ˆ˜์ •

serverPath fileFieldName

https://alex-d.github.io/Trumbowyg/?utm_source=tool.lu

์žฌ์ •์˜

ํ•œ๊ธ€๋ณ€ํ™˜

# ๋น„๋™๊ธฐ์  ์ฒ˜๋ฆฌํ•˜๋Š” Async

# https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-2.1&tabs=visual-studio%2Caspnetcore2x

Chapter 17

Enterprise Architecture c#

# Enterprise Architecture

  1. ๋Œ€ํ˜• ์†”๋ฃจ์…˜, ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐฉ์‹ - ํฐ ํ‹€์„ ๊ตฌ์„ฑ 2. ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๋Š” ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹

Presentation Layer : WPF, WinForm

Business Layer : Validation Check

Cache -๋ชฉ์ : ์ž์ฃผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ด์•„์„œ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ -์žฅ์ : ์ปดํ“จํŒ… ๋น„์šฉ ๊ฐ์†Œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์†๋„๊ฐ€ ์ฆ๊ฐ€ -๋‹จ์ : ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ํ•„์š”๋กœ ํ•˜๊ฒŒ ๋จ

Data Access Layer : DB์— ์ ‘๊ทผ

# Class Library๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Business, Data Access layer๋ฅผ ๋งŒ๋“ฆ

# DLL

# ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ข…๋ฅ˜

  1. .net Framework
  2. .net core
  3. .net Framework(portable) -Xamarin
  4. .net Standard

ASP.NET ๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ์ ํŠธ์ด๊ณ  data ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (๋‹ท๋„ท ์ฝ”์–ด) ์ด๋ฉด ์ ‘๊ทผ์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Œ

# .NET STANDARD๋กœ ํ†ตํ•ฉ

IDataAccessLayer

# ๊ฐ Tier ๋ณ„๋กœ ์ ‘๊ทผ ์ˆœ์„œ

ํด๋ผ์ด์–ธํŠธ ๋ฒ„ํŠผ -> ASP.NET MVC ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ ํ˜ธ์ถœ -> BLL -> IDAL -> DAL ( -> BLL -> MVC )

์˜ค๋ผํด๋กœ ๋ณ€๊ฒฝ์‹œ์—๋Š” Oracle.DAL ๋งŒ ๋ฐ”๊ฟˆ

Chapter 18

์˜์กด์„ฑ ์ฃผ์ž… (Dependency Injection):

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ตฌ์„ฑ์š”์†Œ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๊ฐ€ ์†Œ์Šค์ฝ”๋“œ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ ์™ธ๋ถ€์˜ ์„ค์ •ํŒŒ์ผ ๋“ฑ์„ ํ†ตํ•ด ์ •์˜๋˜๊ฒŒ ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด

์ œ์–ด๋ฐ˜์ „

IoC (Inversion of Control)

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์žฌ์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ๋ฆ„์ œ์–ด๋ฅผ ๋ฐ›๊ฒŒ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์„ ๋งํ•œ๋‹ค.

IoC Container

๊ฐ์ฒด๋ฅผ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๊ฐ„์ ‘์ ์œผ๋กœ ์ƒ์„ฑ, ์†Œ๋ฉธ ์‹œ์ผœ์ฃผ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋œปํ•จ.

# MVC 6 - ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ•  ์ˆ˜ ์žˆ๋Š” 3๊ฐ€์ง€.

  1. services.AddSingleton(); - ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‹œ์ž‘ํ•˜๋ฉด ์›น์‚ฌ์ดํŠธ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ์œ ์ง€๋˜๋Š” ๊ฐ์ฒด ์ฃผ์ž…
  2. services.AddScoped(); - ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‹œ์ž‘๋˜์–ด 1๋ฒˆ์˜ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ์œ ์ง€๋˜๋Š” ๊ฐ์ฒด ์ฃผ์ž…
  3. services.AddTransient(); - ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฐ ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋˜๋Š” ๊ฐ์ฒด ์ฃผ์ž…

# ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด

https://ko.wikipedia.org/wiki/%EC%8B%B1%EA%B8%80%ED%84%B4_%ED%8C%A8%ED%84%B4

http://jusungpark.tistory.com/16

1๋ฒˆ ์‚ฌ์šฉ์ž -> UserBll ์‚ฌ์šฉํ•˜๋ฉด ๊ณ„์† ๋‚จ์•„ ์žˆ์Œ

#AddScoped https://docs.microsoft.com/ko-kr/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.1

Chapter 19

# Unity Container

https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff647202(v=pandp.10)

# ioc Container c#

๋ˆ„๊ฒŸํŒจํ‚ค์ง€ ์„ค์น˜ Unity.Mvc

์ฝ˜ํŠธ๋กค + home ๋ˆ„๋ฅด๋ฉด ๋งจ์œ„๋กœ ์˜ฌ๋ผ๊ฐ ์ฝ˜ํŠธ๋กค + tab ์ฝ˜ํŠธ๋กค + ์œ„ ์•„๋ž˜ ํƒญ์— ํœ ๋ˆ„๋ฅด๋ฉด ๋‹ซํž˜

Chapter 20

appsettings.json์„ ํ†ตํ•œ ConnecitionString ์ฒ˜๋ฆฌ

๋ฆฌ์ƒตํผ์‚ฌ์šฉํ•˜๋ฉด interface ์›ํ•˜๋Š” ์ˆœ์„œ๋กœ ๋ฐ”๊ฟ€์ˆ˜์žˆ์Œ

# DataAccessLayer์—์„œ ๋ˆ„๊ฒŸํŒจํ‚ค์ง€ ๋‘๊ฐœ ์ถ”๊ฐ€

Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer

# connectionstring

https://www.connectionstrings.com/sql-server/

# ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ฝ˜์†”์—์„œ ๊ธฐ๋ณธํ”„๋กœ์ ํŠธ๋Š” Note.DAL๋กœ

# ๋ˆ„๊ฒŸ ํŒจํ‚ค์ง€ Microsoft.EntityFrameworkCore.Tools

add-migration NoteDb update-database

# connectionstring์œ„์น˜๋ฅผ appsettings.json์— ์ž…๋ ฅ

Startupp.cs

Chapter 21

# ์Šค๋ ˆ๋“œ

https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85)

# Winform, WPF

Thread

1.UI Thread 2.Background Thread

-for, foreach, ํŒŒ์ผ์ž…์ถœ๋ ฅ

# ๋™๊ธฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Method1(); 3์ดˆ Method2(); 3์ดˆ Method3(); 3์ดˆ

  • ์ด 9์ดˆ ์†Œ์š”

# ๋น„๋™๊ธฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Method1(); 3์ดˆ Method2(); 3์ดˆ Method3(); 3์ดˆ

  • ์ด 3์ดˆ ์†Œ์š”

C# ๋น„๋™๊ธฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ํ‚ค์›Œ๋“œ

  1. async, await, Task, Task
  • C# 5.0 , ๋‹ท๋„ท ํ”„๋ ˆ์ž„์›Œํฌ 4.5

# ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ• - ์ „ํ†ต์ ์ธ ๋ฐฉ์‹

        Stopwatch watch = new Stopwatch();
        watch.Start();
        var test1 = Test1Async();
        var test2 = Test2Async();
        var test3 = Test3Async();
        var result1 = await test1;
        var result2 = await test2;
        var result3 = await test3;
        watch.Stop();
        var result = watch.ElapsedMilliseconds;

# ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ• - ์ƒˆ๋กœ์šด ๋ฐฉ์‹ Visual Studio Diagonositcs Tools

# ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ณผ์—ฐ ์„ฑ๋Šฅ์ƒ ์ข‹์•„์ง„ ๊ฒƒ ์ผ๊นŒ?

์„ฑ๋Šฅ์ƒ ์ข‹์•„์ง„ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚จ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

Ctrl + mm ๋ˆ„๋ฅด๋ฉด ์ตœ์†Œํ™”๋จ

Chapter 22

# ASP.NET Core Identity

  • ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ๊ฐœ๋ณ„ ์ธ์ฆ(๊ด€๋ฆฌ์ž, ์ผ๋ฐ˜์‚ฌ์šฉ์ž)
  • ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž(๋‚˜์ด๊ฐ€ 19์„ธ ์ด์ƒ)

# Identity ํ…Œ์ด๋ธ” ๊ตฌ์กฐ

  1. dbo.AspNetUsers => ApplicationUser (์œ ์ € ํด๋ž˜์Šค)
  • ID, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์‚ฌ์šฉ์ž ์ด๋ฆ„
  1. dbo.AspNetRoles => ApplicationRole (๋ฃฐ ํด๋ž˜์Šค)
  • ์ด ์›น์‚ฌ์ดํŠธ์— ํšŒ์› ๋ถ„๋ฅ˜
  • ์Šˆํผ ๊ด€๋ฆฌ์ž, ๊ด€๋ฆฌ์ž, ํŠน๋ณ„ ์‚ฌ์šฉ์ž , ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž
  1. dbo.AspNetUserRoles =>
  • 1๋ฒˆ ์‚ฌ์šฉ์ž(PK 1) -> ๊ด€๋ฆฌ์ž(1)
  • 2๋ฒˆ ์‚ฌ์šฉ์ž(PK 2) -> ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž(4)
  1. dbo.AspNetClaims => 5๋ช…์˜ ์‚ฌ์šฉ์ž -> ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž(Role)
  • 2๋ช…์ด ๋‚˜์ด 20์„ธ ๋ฏธ๋งŒ -> 20์„ธ ๋ฏธ๋งŒ์€ ํŠน์ • ๊ฒŒ์‹œํŒ ์ง„์ž…๊ธˆ์ง€ Age 20
    [HttpGet, Authorize(Claims ... Age >20]
  1. dbo.AspNetRoleClaims =>
  • ๊ด€๋ฆฌ์ž - 1๋“ฑ, 2๋“ฑ, 3๋“ฑ
  1. __EFMigrationsHistory ๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ด๋ ฅ๊ด€๋ฆฌ

  2. dbo.AspNetUserLogins => ์™ธ๋ถ€๋กœ๊ทธ์ธ Oauth1.0 / 2.0

  3. dbo.AspNetUserTokens => ์™ธ๋ถ€๋กœ๊ทธ์ธ ๊ด€๋ จ

Chapter 23

Identity ์ƒ์„ฑ ํ…Œ์ด๋ธ” PK ํƒ€์ž… ๋ณ€๊ฒฝํ•˜๊ธฐ

# ApplicationDbContext ์„ค๋ช…

#

์ €๊ฐ™์€ ๊ฒฝ์šฐ๋Š” AccountController ๋ž‘ ManageController๋ถ€๋ถ„์— ๋ฉ”์ผ๋ฐœ์†ก๋ถ€๋ถ„ user.Id ์ด๊ฒŒ ์ˆซ์žํ˜•์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์„œ .ToString() ํ•ด์„œ ํ•ด๊ฒฐํ•˜๊ณ  startup.cs. ๋Š” services.AddIdentity<ApplicationUser, ApplicationRole>() .AddEntityFrameworkStores() .AddDefaultTokenProviders();

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-primary-key-configuration?tabs=aspnetcore2x&view=aspnetcore-2.1

Last Updated: 4/13/2025, 11:14:44 PM