본문 바로가기 메뉴 바로가기

정훈's 프로그래밍

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

정훈's 프로그래밍

검색하기 폼
  • 😍 Jeong Hun.Story (1177)
    • CURSOR (5)
    • Back End (190)
      • 🍀 Spring Boot (23)
      • ☠️ Java (65)
      • 🌈 .NET (85)
      • 🍕 .NET RESTful API (10)
      • 🍔 .NET Entity Framework Cor.. (4)
      • 🥧 Python (3)
    • Front End (79)
      • 🤢 Next.js (15)
      • 😤 React (12)
      • 🌈 Html (7)
      • 🌈 JavaScript (44)
    • deploy (11)
      • 💾 Github (4)
      • 🐳 Docker (7)
    • RDBMS (44)
      • Prisma (6)
      • SQL (4)
      • 🌈 MsSql (34)
    • Mobile (29)
      • 📱 SwiftUI (29)
    • 정보 보관 ver1.0 (747)
  • 방명록

😍 Jeong Hun.Story (1208)
ASP.NET CORE 프로젝트 아키텍처 or 학습 로드 맵

1. NuGet 패키지 목록// AutoMapperAutoMapper extensions for Microsoft.Extensions.DependencyInjection// JWTMicrosoft.AspNetCore.Authentication.JwtBearer // Swagger UISwashbuckle.AspNetCore// Entity Framework Core(EF Core)Microsoft.EntityFrameworkCore.SqlServer

Back End/🌈 .NET 2025. 7. 13. 16:39
7회차: ASP.NET Core Web API & ViewModel

1. NuGet 패키지 설치AutoMapper.Extensions.Microsoft.DependencyInjection 2. 매핑 프로파일 정의using AutoMapper;public class MappingProfile : Profile{ public MappingProfile() { CreateMap(); }} 3. Startup.cs 또는 Program.cs에 AutoMapper 등록// AutoMapper 서비스 추가builder.Services.AddAutoMapper(typeof(Program)); 4. Mapper 호출private readonly IMapper _mapper;public UsersController(IMapper mapper){ _mapp..

Back End/🍕 .NET RESTful API 2025. 7. 13. 14:40
ASP.NET Core Web API & 파라미터 바인딩

✅ ASP.NET Core의 주요 바인딩 특성(Attribute) 정리키워드(Attribute) 역할 / 의미 예시 사용 위치 요청 위치[FromQuery]URL 쿼리 문자열에서 값 추출 (?key=value)GET /api/todos?after=105 → int afterURL Query String[FromRoute]URL 경로 파라미터에서 추출 (/api/todos/123)GET /api/todos/{id} → int idURL Path (Route)[FromBody]**요청 본문(JSON)**에서 추출 (POST, PUT 등에서 객체 받을 때)POST /api/todos + JSON bodyHTTP Body[FromForm]x-www-form-urlencoded 또는 multipart/form-d..

Back End/🍔 .NET Entity Framework Core(EF Core) 2025. 7. 10. 19:49
ASP.NET Core Web API & 무한 스크롤

✅ 1. Skip(n).Take(m) 방식 (offset 방식)🔍 예시var todos = await _context.Todos .OrderBy(t => t.Id) .Skip((page - 1) * pageSize) .Take(pageSize) .ToListAsync();✅ 장점구현이 매우 쉽고 직관적대부분의 프론트엔드 라이브러리와 잘 맞음❌ 단점문제 설명성능Skip()이 클수록 SQL 성능 급하락 (인덱스 무시 가능성)정합성중간 데이터가 추가/삭제되면 페이지가 밀림 → 중복/누락 발생 가능정렬 필수항상 .OrderBy()와 함께 써야 정렬 기준이 고정됨✅ 2. Cursor 기반 페이징 (무한스크롤에 더 적합)🔍 개념마지막 항목의 고유 ID(또는 정렬 필드)를 "커서(cursor..

Back End/🍔 .NET Entity Framework Core(EF Core) 2025. 7. 10. 19:26
6회차: ASP.NET Core Web API & 네이밍 규칙

✅ 기본 RESTful 네이밍 규칙 복습목적 예시 설명전체 목록 조회GET /todos할 일 전체 목록단일 항목 조회GET /todos/123ID가 123인 항목생성POST /todos새 항목 생성수정PUT /todos/123항목 전체 수정삭제DELETE /todos/123항목 삭제✅ 2단계 URL 구조 (두 단)🔸 대표적인 경우: 상위-하위 관계예: 할 일(Todo)에 속한 댓글(Comment)작업 URL 예시 설명특정 Todo의 댓글 목록GET /todos/123/commentsTodo 123에 속한 댓글들특정 댓글 조회GET /todos/123/comments/7Todo 123의 댓글 ID 7댓글 생성POST /todos/123/commentsTodo 123에 댓글 추가댓글 수정PUT /todos..

Back End/🍕 .NET RESTful API 2025. 7. 10. 19:15
DbSet<T>의 이름 또는 컬럼과 DB 테이블 또는 컬럼 이름을 다르게 설정 하기

✅ 핵심 요약DbSet: 코드에서 접근할 때의 이름 (예: context.Todo)ToTable("테이블명"): DB의 실제 물리 테이블명 매핑🎯 예시 코드1. ✅ 모델 클래스 정의public class Todo{ public int Id { get; set; } public string Title { get; set; }}2. ✅ DbContext에서 DbSet 이름 설정public class AppDbContext : DbContext{ public DbSet Todo { get; set; } // 이 이름은 코드에서 사용 protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBu..

Back End/🍔 .NET Entity Framework Core(EF Core) 2025. 7. 10. 18:35
ViewModel 전략과 AutoMapper

✅ ViewModel 전략이란?**Model (엔티티)**에서👉 UI에 필요한 데이터만 골라 담은👉 **전용 클래스(ViewModel or DTO)**로 변환해서👉 클라이언트(뷰, API 응답)에 전달하는 전략🎯 왜 ViewModel을 쓰는가?보안DB 모델에는 민감한 정보도 있을 수 있음 (비밀번호, 내부 설정 등)최적화필요한 데이터만 보내서 네트워크 트래픽 감소유지보수성클라이언트 구조에 맞춰 응답 형식을 유연하게 변경 가능의존성 분리DB 모델과 뷰 로직을 명확하게 분리 (SRP: 단일 책임 원칙)테스트 용이성ViewModel 단위로 유닛 테스트 가능🔍 예시🔸 모델 클래스 (엔티티)public class User{ public int Id { get; set; } public str..

Back End/🌈 .NET 2025. 7. 9. 19:17
Entity Framework Code & Include 함수에 관하여

✅ 기본 개념: Include = 관계형 데이터를 탐색 속성으로 함께 로딩예를 들어 아래와 같은 관계가 있을 때:public class Order{ public int Id { get; set; } public List OrderItems { get; set; }}public class OrderItem{ public int Id { get; set; } public string ProductName { get; set; }}이때 Include로 가져올 수 있음:var order = await _context.Orders .Include(o => o.OrderItems) .FirstOrDefaultAsync(o => o.Id == id);👉 이건 Order 엔티티 안의 ..

Back End/🍔 .NET Entity Framework Core(EF Core) 2025. 7. 9. 18:26
부록3: Entity Framework Core & 자주 사용되는 함수

1. 자주 사용되는 함수ToListAsync()쿼리 결과 전체를 리스트로 반환Task>GET /items (전체 목록 조회)FirstOrDefaultAsync()조건을 만족하는 첫 번째 항목을 반환 (없으면 null)TaskGET /items/1 (단건 조회)SingleOrDefaultAsync()결과가 정확히 하나일 때 반환, 둘 이상이면 예외TaskGET /settings (고유 설정 1건 조회 등)FindAsync()PK(기본키) 기준으로 검색TaskGET /users/3 (Id 기준 단건 조회)AnyAsync()조건에 맞는 항목이 존재하는지 확인TaskPOST /users 시 중복 확인 등CountAsync()조건에 맞는 항목의 개수 반환TaskGET /items/countWhere(...)조건을..

Back End/🍕 .NET RESTful API 2025. 7. 9. 17:56
5회차: ASP.NET Core Web API & Entity Framework Core(EF Core)

1. NuGet 패키지 설치Microsoft.EntityFrameworkCore.SqlServer 2. AppDbContext.cs 선언public class AppDbContext: DbContext{ public AppDbContext(DbContextOptions options): base(options){} public DbSet Todos { get; set; } = null!;} 3. 서비스 등록(Program.cs)builder.Services.AddDbContext(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); 4. appsettings.json..

Back End/🍕 .NET RESTful API 2025. 7. 8. 21:21
이전 1 2 3 4 ··· 121 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • JangJeongHunWorld
  • 닥터슬랭
TAG
  • 특정 문자를 기준으로 자르기
  • java 키워드 정리
  • 인텔리제이(intellij)
  • await
  • jstl(java standard tag library)
  • 문자 자르기
  • jsp 오픈 소스
  • docker
  • .submit()
  • 스프링 시큐리티(spring security)-http basic 인증
  • 메이븐(maven)
  • nl2br
  • 표현 언어(expression language)
  • jstl(java standard tag library)-core
  • 람다식(lambda expression)
  • MainActor
  • error-java
  • java web-mvc
  • 스프링 시큐리티(spring security)
  • 진수 변환
  • 스프링 프레임워크(spring framewordk)
  • java-개발 환경 설정하기
  • In App Purchase
  • 스프링 프레임워크(spring framework)
  • React
  • System.Diagnostics
  • system.io
  • REST API
  • java.sql
  • 제품 등록
more
«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바