{"id":33097,"date":"2024-11-01T09:13:44","date_gmt":"2024-11-01T09:13:44","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33097"},"modified":"2024-11-01T11:29:00","modified_gmt":"2024-11-01T11:29:00","slug":"spring-boot-backend-development-course-blog-creation-example-writing-test-code-to-reduce-repetitive-tasks","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33097\/","title":{"rendered":"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks"},"content":{"rendered":"<p><body><\/p>\n<div class=\"section\">\n<p>In this course, you will learn how to create a blog using Spring Boot, and we will explore how to write test code that will reduce repetitive tasks. This blog project is one of the best ways to practically learn and will further enhance your skills as a developer. The course content is aimed at everyone from beginners to intermediate learners.<\/p>\n<\/div>\n<div class=\"section\">\n<h2>1. Introduction to Spring Boot<\/h2>\n<p>Spring Boot is a simplified configuration of the Spring Framework that helps you develop Spring applications quickly and easily. Using Spring Boot minimizes complex setups or XML configurations and offers the advantage of integrating various embedded servers.<\/p>\n<h3>1.1 Advantages of Spring Boot<\/h3>\n<ul>\n<li><strong>Quick Start:<\/strong> You can quickly run simple applications using pre-configured templates.<\/li>\n<li><strong>Auto Configuration:<\/strong> Spring Boot automatically sets up the components of your application.<\/li>\n<li><strong>Embedded Servers:<\/strong> You can run applications without separate server installations using embedded servers like Tomcat and Jetty.<\/li>\n<li><strong>Dependency Management:<\/strong> Managing dependencies through Maven or Gradle is easy.<\/li>\n<\/ul>\n<\/div>\n<div class=\"section\">\n<h2>2. Project Environment Setup<\/h2>\n<p>Now let&#8217;s set up the environment to create the actual blog application. You can configure the project using the Spring Initializr.<\/p>\n<h3>2.1 Using Spring Initializr<\/h3>\n<ol>\n<li>Go to <a href=\"https:\/\/start.spring.io\">Spring Initializr<\/a> in your web browser.<\/li>\n<li>Enter the project metadata:<\/li>\n<ul>\n<li>Project: Maven Project<\/li>\n<li>Language: Java<\/li>\n<li>Spring Boot: Select the latest version<\/li>\n<li>Group: com.example<\/li>\n<li>Artifact: blog<\/li>\n<li>Name: blog<\/li>\n<li>Package name: com.example.blog<\/li>\n<\/ul>\n<li>Select the following in Dependencies:<\/li>\n<ul>\n<li>Spring Web<\/li>\n<li>Spring Data JPA<\/li>\n<li>H2 Database (can be switched to MySQL)<\/li>\n<li>Spring Boot DevTools<\/li>\n<\/ul>\n<li>Click the Generate button to download the ZIP file.<\/li>\n<\/ol>\n<\/div>\n<div class=\"section\">\n<h2>3. Blog Application Structure<\/h2>\n<p>After configuring the project, we will look at the application structure. A proper directory structure enhances maintainability and readability.<\/p>\n<h3>3.1 Directory Structure<\/h3>\n<pre>\n    blog\n    \u251c\u2500\u2500 src\n    \u2502   \u251c\u2500\u2500 main\n    \u2502   \u2502   \u251c\u2500\u2500 java\n    \u2502   \u2502   \u2502   \u2514\u2500\u2500 com\n    \u2502   \u2502   \u2502       \u2514\u2500\u2500 example\n    \u2502   \u2502   \u2502           \u2514\u2500\u2500 blog\n    \u2502   \u2502   \u2502               \u251c\u2500\u2500 BlogApplication.java\n    \u2502   \u2502   \u2502               \u251c\u2500\u2500 controller\n    \u2502   \u2502   \u2502               \u251c\u2500\u2500 model\n    \u2502   \u2502   \u2502               \u2514\u2500\u2500 repository\n    \u2502   \u2502   \u2514\u2500\u2500 resources\n    \u2502   \u2502       \u251c\u2500\u2500 application.properties\n    \u2502   \u2502       \u2514\u2500\u2500 static\n    \u2502   \u2502           \u2514\u2500\u2500 ...\n    \u2514\u2500\u2500 test\n<\/pre>\n<\/div>\n<div class=\"section\">\n<h2>4. Creating Basic Models and Repositories<\/h2>\n<p>Now, we will create the basic model classes and repository for the blog. The model represents a blog post, while the repository interacts with the database.<\/p>\n<h3>4.1 Creating the Model Class<\/h3>\n<p>First, we create the BlogPost model class.<\/p>\n<pre>\n    package com.example.blog.model;\n\n    import javax.persistence.Entity;\n    import javax.persistence.GeneratedValue;\n    import javax.persistence.GenerationType;\n    import javax.persistence.Id;\n    import javax.persistence.Column;\n    import java.time.LocalDateTime;\n\n    @Entity\n    public class BlogPost {\n        \n        @Id\n        @GeneratedValue(strategy = GenerationType.IDENTITY)\n        private Long id;\n\n        @Column(nullable = false)\n        private String title;\n\n        @Column(nullable = false, length = 5000)\n        private String content;\n\n        private LocalDateTime createdAt;\n\n        public BlogPost() {\n            this.createdAt = LocalDateTime.now();\n        }\n\n        \/\/ Getters and Setters\n    }\n<\/pre>\n<h3>4.2 Creating the Repository Interface<\/h3>\n<p>Next, we create the BlogPostRepository interface to utilize JPA&#8217;s CRUD functionalities.<\/p>\n<pre>\n    package com.example.blog.repository;\n\n    import com.example.blog.model.BlogPost;\n    import org.springframework.data.jpa.repository.JpaRepository;\n\n    public interface BlogPostRepository extends JpaRepository<BlogPost, Long> {\n    }\n<\/pre>\n<\/div>\n<div class=\"section\">\n<h2>5. Creating Controllers and Implementing REST API<\/h2>\n<p>We will create a REST API to manage the data of blog posts. To do this, we will write the controller class.<\/p>\n<h3>5.1 Creating the REST Controller<\/h3>\n<pre>\n    package com.example.blog.controller;\n\n    import com.example.blog.model.BlogPost;\n    import com.example.blog.repository.BlogPostRepository;\n    import org.springframework.beans.factory.annotation.Autowired;\n    import org.springframework.http.ResponseEntity;\n    import org.springframework.web.bind.annotation.*;\n\n    import java.util.List;\n\n    @RestController\n    @RequestMapping(\"\/api\/posts\")\n    public class BlogPostController {\n\n        @Autowired\n        private BlogPostRepository blogPostRepository;\n\n        @GetMapping\n        public List<BlogPost> getAllPosts() {\n            return blogPostRepository.findAll();\n        }\n\n        @PostMapping\n        public BlogPost createPost(@RequestBody BlogPost blogPost) {\n            return blogPostRepository.save(blogPost);\n        }\n\n        @GetMapping(\"\/{id}\")\n        public ResponseEntity<BlogPost> getPostById(@PathVariable Long id) {\n            return blogPostRepository.findById(id)\n                    .map(post -> ResponseEntity.ok().body(post))\n                    .orElse(ResponseEntity.notFound().build());\n        }\n        \n        \/\/ Additional Update and Delete methods\n    }\n<\/pre>\n<\/div>\n<div class=\"section\">\n<h2>6. Writing Test Code<\/h2>\n<p>In this section, we will write test code to verify that the REST API we created works correctly. Spring Boot allows for easy testing using JUnit and Mockito.<\/p>\n<h3>6.1 Setting Up the Test Environment<\/h3>\n<pre>\n    <dependencies>\n        <dependency>\n            <groupId>org.springframework.boot<\/groupId>\n            <artifactId>spring-boot-starter-test<\/artifactId>\n            <scope>test<\/scope>\n        <\/dependency>\n    <\/dependencies>\n<\/pre>\n<h3>6.2 Example of Testing the REST API<\/h3>\n<pre>\n    package com.example.blog;\n\n    import com.example.blog.model.BlogPost;\n    import com.example.blog.repository.BlogPostRepository;\n    import com.fasterxml.jackson.databind.ObjectMapper;\n    import org.junit.jupiter.api.BeforeEach;\n    import org.junit.jupiter.api.Test;\n    import org.springframework.beans.factory.annotation.Autowired;\n    import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;\n    import org.springframework.boot.test.context.SpringBootTest;\n    import org.springframework.http.MediaType;\n    import org.springframework.test.web.servlet.MockMvc;\n    import org.springframework.test.web.servlet.result.MockMvcResultMatchers;\n\n    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;\n\n    @SpringBootTest\n    @AutoConfigureMockMvc\n    public class BlogPostControllerTest {\n\n        @Autowired\n        private MockMvc mockMvc;\n\n        @Autowired\n        private BlogPostRepository blogPostRepository;\n\n        private ObjectMapper objectMapper;\n\n        @BeforeEach\n        public void setUp() {\n            objectMapper = new ObjectMapper();\n            blogPostRepository.deleteAll();\n        }\n\n        @Test\n        public void createPost_ShouldReturnCreatedPost() throws Exception {\n            BlogPost post = new BlogPost();\n            post.setTitle(\"Title\");\n            post.setContent(\"Body content\");\n\n            mockMvc.perform(post(\"\/api\/posts\")\n                    .content(objectMapper.writeValueAsString(post))\n                    .contentType(MediaType.APPLICATION_JSON))\n                    .andExpect(MockMvcResultMatchers.status().isCreated());\n        }\n        \n        \/\/ Additional method tests\n    }\n<\/pre>\n<\/div>\n<div class=\"section\">\n<h2>7. Running the Project<\/h2>\n<p>You are now ready to run the blog application. By running the <code>BlogApplication.java<\/code> file in your IDE, the embedded server will start, and you can use the REST API.<\/p>\n<h3>7.1 Testing the API with Postman<\/h3>\n<p>You can use API testing tools like Postman to test the REST API you created. Experience adding and retrieving blog posts through POST and GET requests.<\/p>\n<\/div>\n<div class=\"section\">\n<h2>Conclusion<\/h2>\n<p>In this Spring Boot backend development course, we learned the core features of Spring Boot by developing a simple blog application. We experienced interactions with the database through basic CRUD operations and learned ways to make the development process more efficient by writing test code.<\/p>\n<p>Based on this project, feel free to add more features and improve the design to evolve into a more complete blog application. We hope you continue to take on new features and frameworks in the future. Thank you.<\/p>\n<\/div>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this course, you will learn how to create a blog using Spring Boot, and we will explore how to write test code that will reduce repetitive tasks. This blog project is one of the best ways to practically learn and will further enhance your skills as a developer. The course content is aimed at &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33097\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks&#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-33097","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, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks - \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\/33097\/\" \/>\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, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In this course, you will learn how to create a blog using Spring Boot, and we will explore how to write test code that will reduce repetitive tasks. This blog project is one of the best ways to practically learn and will further enhance your skills as a developer. The course content is aimed at &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33097\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:13:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:29:00+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=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/33097\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33097\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks\",\"datePublished\":\"2024-11-01T09:13:44+00:00\",\"dateModified\":\"2024-11-01T11:29:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33097\/\"},\"wordCount\":565,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33097\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33097\/\",\"name\":\"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:13:44+00:00\",\"dateModified\":\"2024-11-01T11:29:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33097\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33097\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33097\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks\"}]},{\"@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, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks - \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\/33097\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In this course, you will learn how to create a blog using Spring Boot, and we will explore how to write test code that will reduce repetitive tasks. This blog project is one of the best ways to practically learn and will further enhance your skills as a developer. The course content is aimed at &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks\"","og_url":"https:\/\/atmokpo.com\/w\/33097\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:13:44+00:00","article_modified_time":"2024-11-01T11:29:00+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":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/33097\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33097\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks","datePublished":"2024-11-01T09:13:44+00:00","dateModified":"2024-11-01T11:29:00+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33097\/"},"wordCount":565,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33097\/","url":"https:\/\/atmokpo.com\/w\/33097\/","name":"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:13:44+00:00","dateModified":"2024-11-01T11:29:00+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33097\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33097\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33097\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Backend Development Course, Blog Creation Example, Writing Test Code to Reduce Repetitive Tasks"}]},{"@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\/33097","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=33097"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33097\/revisions"}],"predecessor-version":[{"id":33098,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33097\/revisions\/33098"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33097"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33097"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}