
1. NuGet 패키지 목록// AutoMapperAutoMapper extensions for Microsoft.Extensions.DependencyInjection// JWTMicrosoft.AspNetCore.Authentication.JwtBearer // Swagger UISwashbuckle.AspNetCore// Entity Framework Core(EF Core)Microsoft.EntityFrameworkCore.SqlServer
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..
✅ 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..
✅ 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..
✅ 기본 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..
✅ 핵심 요약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..
✅ ViewModel 전략이란?**Model (엔티티)**에서👉 UI에 필요한 데이터만 골라 담은👉 **전용 클래스(ViewModel or DTO)**로 변환해서👉 클라이언트(뷰, API 응답)에 전달하는 전략🎯 왜 ViewModel을 쓰는가?보안DB 모델에는 민감한 정보도 있을 수 있음 (비밀번호, 내부 설정 등)최적화필요한 데이터만 보내서 네트워크 트래픽 감소유지보수성클라이언트 구조에 맞춰 응답 형식을 유연하게 변경 가능의존성 분리DB 모델과 뷰 로직을 명확하게 분리 (SRP: 단일 책임 원칙)테스트 용이성ViewModel 단위로 유닛 테스트 가능🔍 예시🔸 모델 클래스 (엔티티)public class User{ public int Id { get; set; } public str..
✅ 기본 개념: 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 엔티티 안의 ..
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(...)조건을..
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..
- Total
- Today
- Yesterday
- 특정 문자를 기준으로 자르기
- 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
- 제품 등록
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |