{"id":33171,"date":"2024-11-01T09:14:17","date_gmt":"2024-11-01T09:14:17","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33171"},"modified":"2024-11-01T11:28:38","modified_gmt":"2024-11-01T11:28:38","slug":"spring-boot-backend-development-course-developing-spring-boot-3-projects","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33171\/","title":{"rendered":"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects"},"content":{"rendered":"<p>Hello! In this course, we will delve into backend development using Spring Boot 3 and discuss how to evolve existing projects. Spring Boot is a highly efficient framework for creating web applications in Java that maximizes productivity and simplifies complex configurations. This article will cover the key features of Spring Boot 3, best practices, and techniques for performance enhancement.<\/p>\n<h2>1. Introduction to Spring Boot 3<\/h2>\n<p>Spring Boot 3 is the latest version of the Spring Framework, providing various feature improvements and performance enhancements. In particular, it supports JDK 17 by default, offering an opportunity to utilize new syntax and features. By using this version, developers can enjoy the benefits of the Spring ecosystem while leveraging the latest Java functionalities.<\/p>\n<h3>1.1 Key Features<\/h3>\n<ul>\n<li><strong>Concise Configuration<\/strong>: Spring Boot saves developers time by allowing them to use auto-configuration without needing to set up configurations manually.<\/li>\n<li><strong>Embedded Server<\/strong>: Applications can be easily run using embedded servers like Tomcat and Jetty.<\/li>\n<li><strong>Powerful Integration Capabilities<\/strong>: Integrating with various databases, messaging systems, and cloud services is straightforward.<\/li>\n<li><strong>Metrics and Monitoring<\/strong>: The Actuator module allows for easy monitoring of application status and metrics.<\/li>\n<\/ul>\n<h2>2. Setting up Spring Boot 3 Environment<\/h2>\n<p>To get started with Spring Boot 3, environment setup is required. You can create a project using either Maven or Gradle. In this section, we will refer to an example using Maven.<\/p>\n<h3>2.1 Creating a Maven Project<\/h3>\n<pre><code>\n&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\"\n         xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n         xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"&gt;\n    &lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\n\n    &lt;groupId&gt;com.example&lt;\/groupId&gt;\n    &lt;artifactId&gt;my-spring-boot-app&lt;\/artifactId&gt;\n    &lt;version&gt;0.0.1-SNAPSHOT&lt;\/version&gt;\n    &lt;packaging&gt;jar&lt;\/packaging&gt;\n\n    &lt;name&gt;My Spring Boot Application&lt;\/name&gt;\n    &lt;description&gt;Demo project for Spring Boot&lt;\/description&gt;\n\n    &lt;parent&gt;\n        &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n        &lt;artifactId&gt;spring-boot-starter-parent&lt;\/artifactId&gt;\n        &lt;version&gt;3.0.0&lt;\/version&gt;\n        &lt;relativePath\/&gt; &lt;!-- lookup parent from repository --&gt;\n    &lt;\/parent&gt;\n\n    &lt;properties&gt;\n        &lt;jdk.version&gt;17&lt;\/jdk.version&gt;\n        &lt;spring.boot.version&gt;3.0.0&lt;\/spring.boot.version&gt;\n    &lt;\/properties&gt;\n\n    &lt;dependencies&gt;\n        &lt;dependency&gt;\n            &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n            &lt;artifactId&gt;spring-boot-starter-web&lt;\/artifactId&gt;\n        &lt;\/dependency&gt;\n        &lt;dependency&gt;\n            &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n            &lt;artifactId&gt;spring-boot-starter-data-jpa&lt;\/artifactId&gt;\n        &lt;\/dependency&gt;\n        &lt;dependency&gt;\n            &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n            &lt;artifactId&gt;spring-boot-starter-security&lt;\/artifactId&gt;\n        &lt;\/dependency&gt;\n        &lt;dependency&gt;\n            &lt;groupId&gt;org.h2database&lt;\/groupId&gt;\n            &lt;artifactId&gt;h2&lt;\/artifactId&gt;\n            &lt;scope&gt;runtime&lt;\/scope&gt;\n        &lt;\/dependency&gt;\n    &lt;\/dependencies&gt;\n\n    &lt;build&gt;\n        &lt;plugins&gt;\n            &lt;plugin&gt;\n                &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n                &lt;artifactId&gt;spring-boot-maven-plugin&lt;\/artifactId&gt;\n            &lt;\/plugin&gt;\n        &lt;\/plugins&gt;\n    &lt;\/build&gt;\n&lt;\/project&gt;\n<\/code><\/pre>\n<h3>2.2 Application Properties Configuration<\/h3>\n<p>The application&#8217;s configuration can be managed in the <code>src\/main\/resources\/application.properties<\/code> file. You can change database settings, server port, logging level, and more here.<\/p>\n<pre><code>\n# Server port configuration\nserver.port=8080\n\n# H2 database configuration\nspring.h2.database-url=jdbc:h2:mem:testdb\nspring.h2.console.enabled=true\nspring.jpa.hibernate.ddl-auto=update\n<\/code><\/pre>\n<h2>3. Implementing RESTful API<\/h2>\n<p>The process of implementing a RESTful API using Spring Boot is very simple. In the example below, we will create a simple CRUD API.<\/p>\n<h3>3.1 Entity Class<\/h3>\n<p>First, let&#8217;s create an entity class that will be mapped to the database.<\/p>\n<pre><code>\nimport jakarta.persistence.Entity;\nimport jakarta.persistence.GeneratedValue;\nimport jakarta.persistence.GenerationType;\nimport jakarta.persistence.Id;\n\n@Entity\npublic class Product {\n    @Id\n    @GeneratedValue(strategy = GenerationType.IDENTITY)\n    private Long id;\n    private String name;\n    private double price;\n\n    \/\/ Getters and Setters\n}\n<\/code><\/pre>\n<h3>3.2 Repository Interface<\/h3>\n<p>The repository is the class responsible for interaction with the database. It can be easily created using Spring Data JPA.<\/p>\n<pre><code>\nimport org.springframework.data.jpa.repository.JpaRepository;\n\npublic interface ProductRepository extends JpaRepository<Product, Long> {\n}\n<\/code><\/pre>\n<h3>3.3 Service Class<\/h3>\n<p>Now, let&#8217;s implement the service class that handles the business logic.<\/p>\n<pre><code>\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n@Service\npublic class ProductService {\n    @Autowired\n    private ProductRepository productRepository;\n\n    public List<Product> getAllProducts() {\n        return productRepository.findAll();\n    }\n\n    public Product getProductById(Long id) {\n        return productRepository.findById(id).orElse(null);\n    }\n\n    public Product createProduct(Product product) {\n        return productRepository.save(product);\n    }\n\n    public void deleteProduct(Long id) {\n        productRepository.deleteById(id);\n    }\n}\n<\/code><\/pre>\n<h3>3.4 Controller Class<\/h3>\n<p>Next, let&#8217;s write the controller class that defines the endpoints for the RESTful API.<\/p>\n<pre><code>\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n@RestController\n@RequestMapping(\"\/products\")\npublic class ProductController {\n    @Autowired\n    private ProductService productService;\n\n    @GetMapping\n    public List<Product> getAllProducts() {\n        return productService.getAllProducts();\n    }\n\n    @GetMapping(\"\/{id}\")\n    public ResponseEntity<Product> getProductById(@PathVariable Long id) {\n        Product product = productService.getProductById(id);\n        return product != null ? ResponseEntity.ok(product) : ResponseEntity.notFound().build();\n    }\n\n    @PostMapping\n    public Product createProduct(@RequestBody Product product) {\n        return productService.createProduct(product);\n    }\n\n    @DeleteMapping(\"\/{id}\")\n    public ResponseEntity<Void> deleteProduct(@PathVariable Long id) {\n        productService.deleteProduct(id);\n        return ResponseEntity.ok().build();\n    }\n}\n<\/code><\/pre>\n<h2>4. New Features of Spring Boot 3<\/h2>\n<p>Spring Boot 3 introduces several new features that provide developers with more convenience.<\/p>\n<h3>4.1 Support for Latest Java Features<\/h3>\n<p>Spring Boot 3 supports the new features of JDK 17, allowing the use of record classes, pattern matching, and new switch statements.<\/p>\n<h3>4.2 Native Image Support<\/h3>\n<p>Native images can be generated using GraalVM, drastically reducing application startup times. This significantly enhances performance in cloud environments.<\/p>\n<h2>5. Techniques for Improving Performance and Scalability<\/h2>\n<p>As a project evolves, considerations for performance and scalability become essential. Here are some techniques.<\/p>\n<h3>5.1 Leveraging Caching<\/h3>\n<p>Spring Boot supports various caching solutions. Utilizing caches like Redis and Ehcache can maximize performance.<\/p>\n<h3>5.2 Asynchronous Processing<\/h3>\n<p>Asynchronous processing allows for long-running tasks while providing a fast response to users.<\/p>\n<pre><code>\nimport org.springframework.scheduling.annotation.Async;\nimport org.springframework.stereotype.Service;\n\n@Service\npublic class AsyncService {\n\n    @Async\n    public void performLongRunningTask() {\n        \/\/ Processing long tasks\n    }\n}\n<\/code><\/pre>\n<h3>5.3 Implementing API Gateway<\/h3>\n<p>When using a microservices architecture, API Gateway allows for the integration and management of all API calls through a single endpoint.<\/p>\n<h2>6. Deploying the Application<\/h2>\n<p>Spring Boot applications can be easily deployed using Docker. You can create a Dockerfile to build images and run containers.<\/p>\n<pre><code>\nFROM eclipse-temurin:17-jdk-alpine\nVOLUME \/tmp\nCOPY target\/my-spring-boot-app-0.0.1-SNAPSHOT.jar app.jar\nENTRYPOINT [\"java\",\"-jar\",\"\/app.jar\"]\n<\/code><\/pre>\n<h2>7. Conclusion<\/h2>\n<p>Spring Boot 3 is a powerful framework optimized for modern application development. Through this course, I hope you can build a solid foundation in Spring Boot and gain insights into how it can be applied in practice.<\/p>\n<p>Continuously learn about new features and best practices to become a more advanced developer. Thank you!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this course, we will delve into backend development using Spring Boot 3 and discuss how to evolve existing projects. Spring Boot is a highly efficient framework for creating web applications in Java that maximizes productivity and simplifies complex configurations. This article will cover the key features of Spring Boot 3, best practices, and &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33171\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Developing Spring Boot 3 Projects&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[131],"tags":[],"class_list":["post-33171","post","type-post","status-publish","format-standard","hentry","category-spring-boot-backend-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Boot Backend Development Course, Developing Spring Boot 3 Projects - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/33171\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this course, we will delve into backend development using Spring Boot 3 and discuss how to evolve existing projects. Spring Boot is a highly efficient framework for creating web applications in Java that maximizes productivity and simplifies complex configurations. This article will cover the key features of Spring Boot 3, best practices, and &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Developing Spring Boot 3 Projects&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33171\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:14:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:28:38+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/33171\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33171\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects\",\"datePublished\":\"2024-11-01T09:14:17+00:00\",\"dateModified\":\"2024-11-01T11:28:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33171\/\"},\"wordCount\":565,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33171\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33171\/\",\"name\":\"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:14:17+00:00\",\"dateModified\":\"2024-11-01T11:28:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33171\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33171\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33171\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/33171\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this course, we will delve into backend development using Spring Boot 3 and discuss how to evolve existing projects. Spring Boot is a highly efficient framework for creating web applications in Java that maximizes productivity and simplifies complex configurations. This article will cover the key features of Spring Boot 3, best practices, and &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects\"","og_url":"https:\/\/atmokpo.com\/w\/33171\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:14:17+00:00","article_modified_time":"2024-11-01T11:28:38+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/33171\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33171\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects","datePublished":"2024-11-01T09:14:17+00:00","dateModified":"2024-11-01T11:28:38+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33171\/"},"wordCount":565,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33171\/","url":"https:\/\/atmokpo.com\/w\/33171\/","name":"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:14:17+00:00","dateModified":"2024-11-01T11:28:38+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33171\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33171\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33171\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Backend Development Course, Developing Spring Boot 3 Projects"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=33171"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33171\/revisions"}],"predecessor-version":[{"id":33172,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33171\/revisions\/33172"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}