»ó¼¼Á¤º¸
Ã¥¼Ò°³
ÆÀÀÇ ¿Âº¸µù ¹®¼Ã³·³ ü°èÀûÀ¸·Î,½Ç¹« ¼±¹èó·³ Á¤È®Çϰí Çö½ÇÀûÀ¸·Î,ÀÌ Ã¥ÀÌ ´ç½ÅÀÇ Ã¹ ½ºÇÁ¸µ ºÎÆ® °¡À̵尡 µË´Ï´Ù.ÀÔ¹®ÀÚ¶ó¼ ±âº»ÀÌ ºÎÁ·ÇÏ´Ù°í ´À³¢³ª¿ä? ½ÅÀÔÀÌ¶ó¼ ½Ç¹«ÀÇ È帧ÀÌ ¸·¿¬ÇÏ°Ô ´À²¸Áö³ª¿ä? »õ·Î¿î ÇÁ·ÎÁ§Æ®¸¦ ¸Ã¾Ò´Âµ¥ ¾îµð¼ºÎÅÍ ½ÃÀÛÇØ¾ß ÇÒÁö °í¹ÎµÇ³ª¿ä? °³¹ß ȯ°æ ¼³Á¤, API ¼³°è, µ¥ÀÌÅͺ£À̽º ¿¬µ¿, ÀÎÁõ ±¸Çö, ¹èÆ÷±îÁö¡¦ ¹«¾ù Çϳª Àͼ÷ÇÏÁö ¾Ê´Ù¸é ±Ý¼¼ ºÎ´ãÀ¸·Î ´À²¸Áú ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ °ÆÁ¤ÇÏÁö ¸¶¼¼¿ä. ÀÌÁ¦ ´ç½Å °ç¿¡´Â µçµçÇÑ ¡®¿Âº¸µù °¡À̵塯°¡ ÇÔ²²ÇÕ´Ï´Ù. ÀÌ Ã¥Àº °³¹ß ȯ°æ ±¸ÃàºÎÅÍ ¹èÆ÷ÇÏ´Â °úÁ¤±îÁö ½ÇÁ¦ °³¹ß ÇöÀå¿¡¼ »ç¿ëÇÏ´Â ¹æ½Ä ±×´ë·Î ¾È³»ÇÕ´Ï´Ù. ´Ü¼øÈ÷ ±â´ÉÀ» ¼³¸íÇÏ´Â µ¥ ±×Ä¡Áö ¾Ê°í, Á÷Á¢ µû¶óÇϸç ÀÚ¿¬½º·´°Ô ¡®¿Ö ÀÌ·¸°Ô ±¸¼ºÇØ¾ß ÇÏ´ÂÁö¡¯, ¡®½Ç¹«¿¡¼´Â ¾î¶»°Ô ó¸®ÇÏ´ÂÁö¡¯¸¦ ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇß½À´Ï´Ù. ÀÌ Ã¥À» ¿ÏÁÖÇÏ°í ³ª¸é ½ºÇÁ¸µ ºÎÆ®·Î ÇϳªÀÇ ¼ºñ½º¸¦ óÀ½ºÎÅÍ ³¡±îÁö ½º½º·Î ¸¸µé ¼ö ÀÖ´Â ½Ç¹« °¨°¢À» ¾ò°Ô µÉ °ÍÀÔ´Ï´Ù.
ÀúÀÚ¼Ò°³
±Û·Î¹ú SaaS, ¹«±â ½Ã½ºÅÛ SW, ij¸®¾î±Þ Åë½ÅÀåºñ SW¸¦ °³¹ßÇØ ¿Â ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾îÀ̸ç, ÇöÀç´Â B2B SaaS ±â¾÷ÀÇ CTO·Î ÀçÁ÷ ÁßÀÔ´Ï´Ù. ´ëÇ¥ Àú¼·Î´Â ¡ºÀ̰ÍÀÌ ÀڷᱸÁ¶+¾Ë°í¸®ÁòÀÌ´Ù with C¡», ¡ºÀ̰ÍÀÌ C#ÀÌ´Ù(3ÆÇ)¡» µîÀÌ ÀÖ½À´Ï´Ù.
¸ñÂ÷
Part 1. ½ºÇÁ¸µ ºÎÆ® ¿Âº¸µù °¡À̵åºÏ ¾È³»Chapter 01 ¿Âº¸µù °¡À̵åÀÇ ¸ñÀû°ú Ȱ¿ë¹ý1-1 °¡À̵åÀÇ ¸ñÀû¿Âº¸µù °¡À̵åÀÇ ´ë»ó°ú ¹üÀ§¾Ë°í ÀÖÀ¸¸é ÁÁÀº Áö½ÄÇÊ¿äÇÑ °³¹ß ȯ°æ1.2 °³¹ß ȯ°æ ¿Âº¸µùWSL2¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯WSL2 ¼³Ä¡Çϱ⵵Ŀ µ¥½ºÅ©Å¾ ¼³Ä¡ÇϱâIntelliJ IDEA ¼³Ä¡ÇϱâJDK 21 ¼³Ä¡ÇϱâGradle ¼³Ä¡ÇϱâChapter 02 ½ºÇÁ¸µ ºÎÆ®¶õ ¹«¾ùÀΰ¡¿ä?2.1 ½ºÇÁ¸µ ºÎÆ® ¼Ò°³½ºÇÁ¸µ ºÎÆ®ÀÇ ¾²ÀÓ»õ½ºÇÁ¸µ ºÎÆ®ÀÇ ³»ºÎ ±¸Á¶½ºÇÁ¸µ ºÎÆ® ¼Ò°³½ºÇÁ¸µ ºÎÆ® ÀÌÇØ¿¡ ÇÊ¿äÇÑ ÁÖ¿ä °³³ä[°í¹Î»ó´ã¼Ò] ÀÚ¹Ù °³¹ßÀÚ°¡ ¹è¿ö¾ß ÇÒ ÇÁ·¹ÀÓ¿öÅ©Part 2. ½ºÇÁ¸µ ºÎÆ® ±â´É ½Ç½ÀChapter 03 Àθ޸𸮠±â¹ÝÀÇ To-Do ¸®½ºÆ® REST API ¼¹ö ¸¸µé±â3.1 ÇÁ·ÎÁ§Æ® ÃʱâÈWSL2 Å͹̳Π½ÇÇàÇÁ·ÎÁ§Æ® ½ºÄ³Æúµå »ý¼º ¹× ´Ù¿î·ÎµåIntelliJ IDEA ÇÁ·ÎÁ§Æ® ÃʱâȾÖÇø®ÄÉÀÌ¼Ç ÆÐŰÁö ¹× ¼Ò½º ÄÚµå ÆÄÀÏ »ý¼ºÇϱâbuild.gradle ¼öÁ¤3.2 Àθ޸𸮠To-Do ¸®½ºÆ® API ¼¹ö ±¸ÇöTo-Do ¸®½ºÆ® ±¸¼º ¿ä¼ÒºôµåÀ¯´Ö Å×½ºÆ®TestControllerTests: TodoController À¯´Ö Å×½ºÆ® ½ÇÇà ¹× Swagger-UI¸¦ ÀÌ¿ëÇÑ API Å×½ºÆ® [°í¹Î»ó´ã¼Ò] Å×½ºÆ® ÄÚµåÀÇ Çʿ伺Chapter 04 JPA ±â¹ÝÀÇ To-Do ¸®½ºÆ® REST API ¼¹ö °³¹ß4.1 JPA ÀÌÇØÇϱâJPAÀÇ °³³ä°ú ¿ªÇÒ JPA¿Í HibernateÀÇ °ü°è JPAÀÇ ÁÖ¿ä ¾Ö³ëÅ×ÀÌ¼Ç ½ºÇÁ¸µ µ¥ÀÌÅÍ JPADTO ÆÐÅÏ ÀÌÇØÇϱâ4.2 ÇÁ·ÎÁ§Æ® ÃʱâÈÇÁ·ÎÁ§Æ® º¹»ç µµÄ¿¸¦ ÀÌ¿ëÇÑ MySQL ¼³Ä¡ ¹× ¼³Á¤ Å×ÀÌºí ½ºÅ°¸¶ settings.gradleÀÇ ÇÁ·ÎÁ§Æ® ¸í º¯°æ build.gradle¿¡ JPA ¹× MySQL JDBC µå¶óÀ̹ö ÀÇÁ¸¼º Ãß°¡ application.properties ¼öÁ¤ 4.3 JPA ±â¹ÝÀÇ To-Do ¸®½ºÆ® API ¼¹ö ±¸Çö¸ÞÀΠŬ·¡½º ¼öÁ¤Çϱ⠿£Æ¼Æ¼, DTO, ¸ÅÆÛ ÀÛ¼º ¸®Æ÷ÁöÅ丮 ¼öÁ¤ ¼ºñ½º ·¹ÀÌ¾î ¼öÁ¤REST ÄÁÆ®·Ñ·¯ ¼öÁ¤ API ¹®¼È¸¦ À§ÇÑ Swagger ¼³Á¤ TodoControllerTests ¼öÁ¤ TodoServiceTests ¼öÁ¤ Test ½ÇÇà ½ÇÇà ¹× Swagger-UI¸¦ ÀÌ¿ëÇÑ API Å×½ºÆ® [°í¹Î»ó´ã¼Ò] ½ºÇÁ¸µ ºÎÆ®ÀÇ µ¥ÀÌÅͺ£À̽º ¿¬µ¿ Chapter 05 °í±Þ JPA ±â¹ÝÀÇ ¸¶ÀÌÅ©·Îºí·Î±× REST API ¼¹ö °³¹ß5.1 ÇÁ·ÎÁ§Æ® ÃʱâÈÇÁ·ÎÁ§Æ® ½ºÄ³Æúµå »ý¼º ¹× ´Ù¿î·Îµå IntelliJ IDEA ÇÁ·ÎÁ§Æ® ÃʱâÈ ÆÐŰÁö ¹× ¼Ò½º ÄÚµå ÆÄÀÏ »ý¼º µµÄ¿¸¦ ÀÌ¿ëÇÑ MySQL ¼³Ä¡ ¹× ¼³Á¤ build.gradle ¼öÁ¤ application.properties ¼öÁ¤5.2 Minilog API ¼¹ö ±¸Çö½ºÇÁ¸µ Àü¿ª ¿¡·¯ 󸮱â ÀÛ¼ºÇϱ⠿£Æ¼Æ¼, DTO, ¸ÅÆÛ ±¸Çö entity, dto, util ÆÐŰÁö »ý¼ºÇϱâ DTO Ŭ·¡½º ÀÛ¼ºÇϱ⠸®Æ÷ÁöÅ丮 ·¹ÀÌ¾î ±¸ÇöÇϱ⠼ºñ½º ·¹ÀÌ¾î ±¸ÇöÇϱâ ÄÁÆ®·Ñ·¯ ·¹ÀÌ¾î ±¸ÇöÇϱâ API ¹®¼È¸¦ À§ÇÑ Swagger ¼³Á¤ [°í¹Î»ó´ã¼Ò] JPA ÄÚµå ±¸Á¶Chapter 06 Minilog¿¡ ÀÎÁõ ±â´É Ãß°¡Çϱâ6.1 JWT ÀÎÁõ ÀÌÇØÇϱâÁÖ¿ä ÀÎÁõ ±â¹ý¿Ö JWTÀΰ¡? JWTÀÇ ±¸Á¶¿Í ¸ÞÄ¿´ÏÁò JWT ÀÎÁõ ¼ø¼ ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¸¦ ÀÌ¿ëÇÑ JWT ÀÎÁõ ±â´É ÅëÇÕ 6.2 ÇÁ·ÎÁ§Æ® ÃʱâÈÇÁ·ÎÁ§Æ® º¹»ç build.gradle¿¡ ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ÀÇÁ¸¼º Ãß°¡ application.properties ¼öÁ¤ 6.3 Minilog¿¡ ÀÎÁõ ±â´É ´õÇϱâ JWT »ý¼º ¹× °ËÁõ ±¸ÇöÇϱâGrantedAuthority¸¦ »ó¼ÓÇÏ´Â MinilogGrantedAuthority Á¤ÀÇÇϱâ UserDetails ¹× UserDetailsService¸¦ °¢°¢ »ó¼ÓÇÏ¿© MinilogUserDetails¿Í MinilogUserDetailsService Á¤ÀÇÇϱâ JWT ÀÎÁõ ó¸® ±¸ÇöÇϱ⠿£Æ¼Æ¼, DTO ¼öÁ¤Çϱ⠼ºñ½º ·¹ÀÌ¾î ¼öÁ¤Çϱâ ÄÁÆ®·Ñ·¯ ·¹ÀÌ¾î ¼öÁ¤Çϱ⠺ôµå6.4 ½ÇÇà ¹× Swagger-UI¸¦ ÀÌ¿ëÇÑ API Å×½ºÆ®minlog-jpa-with-auth ½ÇÇà ½Å±Ô »ç¿ëÀÚ Ãß°¡ Minilog ·Î±×ÀÎ ¹× Swagger UI ÀÎÁõ ±âŸ ±â´É Å×½ºÆ®[°í¹Î»ó´ã¼Ò] ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ÀÇ ¼Ò¼È ·Î±×ÀÎChapter 07 GraphQL ±â¹Ý ¸¶ÀÌÅ©·Îºí·Î±× API ¼¹ö °³¹ß7.1 GraphQL ÀÌÇØÇϱâGraphQLÀ̶õ? GraphQLÀÇ ÇÙ½É °³³ä GraphQLÀÇ ÁÖ¿ä ±¸¼º ¿ä¼Ò GraphQL µ¿ÀÛ ±¸Á¶ GraphQL ½ºÅ°¸¶ ¿¡·¯ ó¸® 7.2 ÇÁ·ÎÁ§Æ® ÃʱâÈ ÇÁ·ÎÁ§Æ® º¹»ç build.gradle¿¡ graphql ÀÇÁ¸¼º Ãß°¡ application.properties ¼öÁ¤ 7.3 Minilog¿¡ GraphQL Áö¿ø Ãß°¡Çϱâ Minilog GraphQL ½ºÅ°¸¶ Á¤ÀÇÇϱâ Àü¿ª GraphQL ¿¹¿Ü ó¸® SecurityConfig ¼öÁ¤ ÀÀ´ä ŸÀÔ ÀԷ ŸÀÔ GraphQL ÄÁÆ®·Ñ·¯ Ãß°¡Çϱâºôµå 7.4 ½ÇÇà ¹× GraphiQL/Swaggger-UI¸¦ ÀÌ¿ëÇÑ API Å×½ºÆ® minlog-graphql ½ÇÇà ½Å±Ô »ç¿ëÀÚ Ãß°¡ Minilog ·Î±×ÀÎ ¹× Swagger UI ÀÎÁõ GraphQL Å×½ºÆ® Ãß°¡ Å×½ºÆ®[°í¹Î»ó´ã¼Ò] GrapQL µµÀÔ ½ÃÁ¡Chapter 08 µµÄ¿¸¦ ÀÌ¿ëÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ÆÐŰ¡ ¹× ¹èÆ÷8.1 DockerÀÇ ±âº» °³³ä°ú ¼³Ä¡ Docker¶õ ¹«¾ùÀΰ¡? DockerÀÇ ÁÖ¿ä ±¸¼º ¿ä¼Ò 8.2 Dockerfile ÀÛ¼º ¹× À̹ÌÁö ½ÇÇà Å×½ºÆ® application.propertiesÀÇ ºÐ¸® Dockerfile ÀÛ¼º °³¹ß(·ÎÄÃ) ȯ°æ¿¡¼ ÄÁÅ×ÀÌ³Ê ½ÇÇà ¹× Å×½ºÆ® 8.3 AWS¿¡ Minilog-GraphQL ¹èÆ÷Çϱâ AWS ¾×¼¼½º Ű ¹× ºñ¹Ð ¾×¼¼½º Ű »ý¼º ¹æ¹ý WSL2¿¡ AWS CLI ¼³Ä¡ÇϱâAmazon RDS, ECR, ECS ÀÌÇØÇϱâ Amazon RDS MySQL ÀνºÅϽº ¼³Á¤±âº» º¸¾È ±×·ì Àιٿîµå ¼Ó¼º ÆíÁý application-prod.properties ¼öÁ¤ Amazon ECR¿¡ Docker À̹ÌÁö µî·Ï Amazon ECS Ŭ·¯½ºÅÍ¿¡ Minilog-GraphQL ¾Û ¹èÆ÷Çϱâ 8.4 Swaggger-UI/GraphiQL¸¦ ÀÌ¿ëÇÑ API Å×½ºÆ® Swagger-UI¸¦ ÀÌ¿ëÇÑ API Å×½ºÆ® GraphiQL¸¦ ÀÌ¿ëÇÑ GraphQLÅ×½ºÆ® [°í¹Î»ó´ã¼Ò] AWS, Azure, GCP7. °ü·Ã ¼Àû (Á¦¸ñ + ISBN)°³¹ßÀÚ¸¦ À§ÇÑ IT ¿µ¾î ¿Âº¸µù °¡À̵å / 979-11-6921-352-3 / ÇѺû¹Ìµð¾î, 2025À̰ÍÀÌ Spring AI´Ù / 979-11-6921-423-6 / ÇѺû¹Ìµð¾î, 2025À̰ÍÀÌ ½ºÇÁ¸µ ºÎÆ®´Ù with ÀÚ¹Ù / 979-11-6921-388-2 / ÇѺû¹Ìµð¾î, 2025