{"id":33199,"date":"2024-11-01T09:14:29","date_gmt":"2024-11-01T09:14:29","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33199"},"modified":"2024-11-01T11:28:30","modified_gmt":"2024-11-01T11:28:30","slug":"spring-boot-backend-development-course-implementing-login-and-logout-with-spring-security-membership-registration-prerequisites-spring-security","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33199\/","title":{"rendered":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security"},"content":{"rendered":"<p><body><\/p>\n<article>\n<header>\n<p>In this course, we will learn about backend development methods using Spring Boot and Spring Security. The topic is implementing login\/logout and user registration, and the prerequisite knowledge required is an understanding of the basic concepts of Spring Security.<\/p>\n<\/header>\n<section>\n<h2>1. Introduction to Spring Boot<\/h2>\n<p>\n                Spring Boot is a framework created to simplify the configuration and deployment of the Spring framework. It reduces the complicated setup of existing Spring and helps developers quickly develop applications. By using Spring Boot, it becomes much easier to create powerful applications by reducing boilerplate code through pre-configured rules and components.\n            <\/p>\n<p>\n                Spring Boot provides several features by default. For example, it includes an embedded server for running applications, auto-configuration, and external configuration file management. These features allow developers to focus more on the business logic of the application.\n            <\/p>\n<\/section>\n<section>\n<h2>2. Overview of Spring Security<\/h2>\n<p>\n                Spring Security is a powerful and customizable security framework for authentication and authorization in Java applications. With Spring Security, you can implement access control for your application and easily integrate user authentication, authorization, and security-related features.\n            <\/p>\n<p>\n                Key features of Spring Security include HTTP basic authentication, form-based login, OAuth2.0 support, and integration with various authentication providers. This allows for flexible control that meets authentication requirements.\n            <\/p>\n<\/section>\n<section>\n<h2>3. Prerequisite Knowledge: Spring Security<\/h2>\n<p>\n                To follow this course, you must understand the basic concepts of Spring Security. In particular, it is essential to clearly know the difference between authentication and authorization. Authentication is the process of confirming who a user is, while authorization is the process of verifying whether a user has the right to access specific resources.\n            <\/p>\n<p>\n                Spring Security has a filter chain structure that applies security by processing HTTP requests. Security settings are implemented through a Java Config class, and authentication and authorization for users operate according to these settings.\n            <\/p>\n<\/section>\n<section>\n<h2>4. Project Setup<\/h2>\n<p>\n                For the examples in this course, we will create a Spring Boot project using an IDE such as IntelliJ IDEA or Eclipse. When creating the project, we will add dependencies such as &#8220;Web,&#8221; &#8220;Security,&#8221; &#8220;JPA,&#8221; and &#8220;H2.&#8221;\n            <\/p>\n<pre><code> \n                <dependency>\n                    <groupid>org.springframework.boot<\/groupid>\n                    <artifactid>spring-boot-starter-security<\/artifactid>\n                <\/dependency>\n                <dependency>\n                    <groupid>org.springframework.boot<\/groupid>\n                    <artifactid>spring-boot-starter-data-jpa<\/artifactid>\n                <\/dependency>\n                <dependency>\n                    <groupid>com.h2database<\/groupid>\n                    <artifactid>h2<\/artifactid>\n                    <scope>runtime<\/scope>\n                <\/dependency> \n            <\/code><\/pre>\n<\/section>\n<section>\n<h2>5. Database Modeling<\/h2>\n<p>\n                To implement user registration, we will define a User entity to store user information. This entity will be mapped to a database table and will have properties such as username, password, and roles.\n            <\/p>\n<pre><code>\n                import javax.persistence.*;\n                import java.util.Set;\n\n                @Entity\n                public class User {\n                    @Id\n                    @GeneratedValue(strategy = GenerationType.IDENTITY)\n                    private Long id;\n\n                    private String username;\n                    private String password;\n\n                    @ElementCollection(fetch = FetchType.EAGER)\n                    private Set<String> roles;\n\n                    \/\/ Getters and setters\n                }\n            <\/code><\/pre>\n<\/section>\n<section>\n<h2>6. Spring Security Configuration<\/h2>\n<p>\n                To configure Spring Security, we will create a SecurityConfig class. This class will configure the security settings for HTTP requests and the user authentication service.\n            <\/p>\n<pre><code>\n                import org.springframework.context.annotation.Bean;\n                import org.springframework.context.annotation.Configuration;\n                import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;\n                import org.springframework.security.config.annotation.web.builders.HttpSecurity;\n                import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\n                import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\n\n                @Configuration\n                @EnableWebSecurity\n                public class SecurityConfig extends WebSecurityConfigurerAdapter {\n                    @Override\n                    protected void configure(HttpSecurity http) throws Exception {\n                        http\n                            .authorizeRequests()\n                            .antMatchers(\"\/\", \"\/register\").permitAll()\n                            .anyRequest().authenticated()\n                            .and()\n                            .formLogin()\n                            .loginPage(\"\/login\")\n                            .permitAll()\n                            .and()\n                            .logout()\n                            .permitAll();\n                    }\n\n                    @Override\n                    protected void configure(AuthenticationManagerBuilder auth) throws Exception {\n                        auth.inMemoryAuthentication()\n                            .withUser(\"user\").password(passwordEncoder().encode(\"password\")).roles(\"USER\");\n                    }\n\n                    @Bean\n                    public PasswordEncoder passwordEncoder() {\n                        return new BCryptPasswordEncoder();\n                    }\n                }\n            <\/code><\/pre>\n<\/section>\n<section>\n<h2>7. Implementing Login and Registration Screens<\/h2>\n<p>\n                We will use Thymeleaf to set up the login page and registration page. These pages will provide input forms to the user and receive the necessary information from them.\n            <\/p>\n<h3>Login Page<\/h3>\n<pre><code>\n                &lt;!DOCTYPE html&gt;\n                &lt;html xmlns:th=\"http:\/\/www.thymeleaf.org\"&gt;\n                &lt;head&gt;\n                    &lt;title&gt;Login&lt;\/title&gt;\n                &lt;\/head&gt;\n                &lt;body&gt;\n                    &lt;h1&gt;Login&lt;\/h1&gt;\n                    &lt;form th:action=\"@{\/login}\" method=\"post\"&gt;\n                        &lt;label&gt;Username&lt;\/label&gt;\n                        &lt;input type=\"text\" name=\"username\"\/&gt;\n                        &lt;label&gt;Password&lt;\/label&gt;\n                        &lt;input type=\"password\" name=\"password\"\/&gt;\n                        &lt;button type=\"submit\"&gt;Login&lt;\/button&gt;\n                    &lt;\/form&gt;\n                &lt;\/body&gt;\n                &lt;\/html&gt;\n            <\/code><\/pre>\n<h3>Registration Page<\/h3>\n<pre><code>\n                &lt;!DOCTYPE html&gt;\n                &lt;html xmlns:th=\"http:\/\/www.thymeleaf.org\"&gt;\n                &lt;head&gt;\n                    &lt;title&gt;Registration&lt;\/title&gt;\n                &lt;\/head&gt;\n                &lt;body&gt;\n                    &lt;h1&gt;Registration&lt;\/h1&gt;\n                    &lt;form th:action=\"@{\/register}\" method=\"post\"&gt;\n                        &lt;label&gt;Username&lt;\/label&gt;\n                        &lt;input type=\"text\" name=\"username\"\/&gt;\n                        &lt;label&gt;Password&lt;\/label&gt;\n                        &lt;input type=\"password\" name=\"password\"\/&gt;\n                        &lt;button type=\"submit\"&gt;Register&lt;\/button&gt;\n                    &lt;\/form&gt;\n                &lt;\/body&gt;\n                &lt;\/html&gt;\n            <\/code><\/pre>\n<\/section>\n<section>\n<h2>8. Implementing Registration Logic<\/h2>\n<p>\n                To implement the registration functionality, we will create a UserController to handle requests. This controller will receive user input to create a new user and save it to the database.\n            <\/p>\n<pre><code>\n                import org.springframework.beans.factory.annotation.Autowired;\n                import org.springframework.security.crypto.password.PasswordEncoder;\n                import org.springframework.stereotype.Controller;\n                import org.springframework.ui.Model;\n                import org.springframework.web.bind.annotation.GetMapping;\n                import org.springframework.web.bind.annotation.PostMapping;\n                import org.springframework.web.bind.annotation.RequestParam;\n\n                @Controller\n                public class UserController {\n                    @Autowired\n                    private UserRepository userRepository;\n\n                    @Autowired\n                    private PasswordEncoder passwordEncoder;\n\n                    @GetMapping(\"\/register\")\n                    public String showRegistrationForm(Model model) {\n                        return \"register\";\n                    }\n\n                    @PostMapping(\"\/register\")\n                    public String registerUser(@RequestParam String username, @RequestParam String password) {\n                        User user = new User();\n                        user.setUsername(username);\n                        user.setPassword(passwordEncoder.encode(password));\n                        user.getRoles().add(\"USER\");\n                        userRepository.save(user);\n                        return \"redirect:\/login\";\n                    }\n                }\n            <\/code><\/pre>\n<\/section>\n<section>\n<h2>9. Running the Application<\/h2>\n<p>\n                Once everything is set up, we will run the application. Open a browser and access the login page to test the features we have implemented. Register a user on the registration page and check if login is successful.\n            <\/p>\n<\/section>\n<section>\n<h2>10. Conclusion<\/h2>\n<p>\n                Through this course, we learned how to implement basic login and registration functionality using Spring Boot and Spring Security. Spring Security is a powerful security framework that allows you to design various authentication and authorization scenarios. It is important to continue enhancing the security of your application by adding more advanced features.\n            <\/p>\n<\/section>\n<footer>\n<p>If you want more information and examples, please refer to the official documentation or related courses.<\/p>\n<\/footer>\n<\/article>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this course, we will learn about backend development methods using Spring Boot and Spring Security. The topic is implementing login\/logout and user registration, and the prerequisite knowledge required is an understanding of the basic concepts of Spring Security. 1. Introduction to Spring Boot Spring Boot is a framework created to simplify the configuration and &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33199\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security&#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-33199","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, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security - \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\/33199\/\" \/>\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, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In this course, we will learn about backend development methods using Spring Boot and Spring Security. The topic is implementing login\/logout and user registration, and the prerequisite knowledge required is an understanding of the basic concepts of Spring Security. 1. Introduction to Spring Boot Spring Boot is a framework created to simplify the configuration and &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33199\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:14:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:28:30+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\/33199\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33199\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security\",\"datePublished\":\"2024-11-01T09:14:29+00:00\",\"dateModified\":\"2024-11-01T11:28:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33199\/\"},\"wordCount\":592,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33199\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33199\/\",\"name\":\"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:14:29+00:00\",\"dateModified\":\"2024-11-01T11:28:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33199\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33199\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33199\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security\"}]},{\"@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, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security - \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\/33199\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In this course, we will learn about backend development methods using Spring Boot and Spring Security. The topic is implementing login\/logout and user registration, and the prerequisite knowledge required is an understanding of the basic concepts of Spring Security. 1. Introduction to Spring Boot Spring Boot is a framework created to simplify the configuration and &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security\"","og_url":"https:\/\/atmokpo.com\/w\/33199\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:14:29+00:00","article_modified_time":"2024-11-01T11:28:30+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\/33199\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33199\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security","datePublished":"2024-11-01T09:14:29+00:00","dateModified":"2024-11-01T11:28:30+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33199\/"},"wordCount":592,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33199\/","url":"https:\/\/atmokpo.com\/w\/33199\/","name":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:14:29+00:00","dateModified":"2024-11-01T11:28:30+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33199\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33199\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33199\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Membership Registration, Prerequisites Spring Security"}]},{"@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\/33199","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=33199"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33199\/revisions"}],"predecessor-version":[{"id":33200,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33199\/revisions\/33200"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}