Spring Social을 사용하여 소셜 네트워크에 연결하는 방법
소셜 네트워크는 오늘날 사람들의 삶에 없어서는 안 될 부분이 되었습니다. Facebook, LinkedIn, Twitter, Sina Weibo와 같은 인기 소셜 네트워킹 사이트는 매우 높은 인기를 얻었으며 많은 사람들이 매일 방문해야 하는 사이트가 되었습니다. 소셜 네트워크에서는 많은 양의 정보가 공유됩니다. 애플리케이션의 경우 소셜 네트워크에 대한 지원을 제공해야 합니다. 앱은 소셜 네트워크와의 통합을 통해 빠르게 인기를 얻을 수 있습니다. 소셜 네트워크와의 통합에는 주로 두 가지 기능이 있습니다. 첫 번째는 비교적 간단한 사용자 로그인 통합으로, 사용자는 소셜 네트워크 웹사이트의 기존 계정을 사용하여 애플리케이션에 로그인할 수 있습니다. 이것의 장점은 사용자가 재등록하는 과정을 절약할 수 있고, 사용자의 기존 소셜 네트워크와 연결할 수도 있다는 것입니다. 두 번째는 사용자가 관련 콘텐츠를 공유할 수 있는 심층적인 통합 방법입니다. 소셜 네트워크 중간에 적용됩니다. 이것의 장점은 애플리케이션 자체를 홍보하면서도 사용자의 끈기를 유지할 수 있다는 점이다.
애플리케이션에 소셜 네트워크를 통합하는 것은 복잡한 작업이 아닙니다. 많은 소셜 네트워킹 서비스는 타사 애플리케이션을 통합할 수 있는 개방형 API를 제공합니다. 완료하려면 관련 문서를 참조하세요. 그러나 통합 자체에는 일정량의 작업이 필요합니다. 통합해야 하는 웹사이트가 많을수록 그에 따른 작업량도 늘어납니다. Spring 프레임워크 컴포넌트 제품군의 일부인 Spring Social은 소셜 네트워크 서비스의 추상화를 제공하고 운영을 위한 관련 API를 제공합니다.
Spring Social을 사용하는 가장 큰 이점은 이미 주류 소셜 네트워킹 사이트에 대한 지원을 제공하고 있으며 간단한 구성만 필요하다는 것입니다. 덜 일반적으로 사용되는 일부 소셜 네트워킹 사이트의 경우 커뮤니티에서 해당 구성 요소를 찾을 수도 있습니다. 이 기사에서는 샘플 애플리케이션을 사용하여 Spring Social의 사용법을 설명합니다.
샘플 애플리케이션
이 예제에서는 사용자가 소셜 네트워킹 사이트에 로그인하여 친구의 정보를 볼 수 있습니다. 이것은 Spring MVC 프레임워크를 사용하여 구축된 웹 애플리케이션입니다. 이 애플리케이션은 내장된 H2 데이터베이스를 사용하여 데이터를 저장합니다. 프론트엔드는 JSP, JSTL, Spring에서 제공하는 태그 라이브러리를 사용하고, 페이지 레이아웃은 Apache Tiles를 사용합니다. Spring Security를 사용하여 사용자 인증을 관리합니다. 페이지의 스타일은 Twitter Bootstrap 라이브러리를 사용하여 지정됩니다. 프로젝트는 Gradle을 사용하여 빌드되었습니다. 프런트 엔드 라이브러리는 Bower를 통해 관리됩니다.
예제에서 제공하는 기능은 비교적 간단하며 주로 로그인 및 등록 페이지와 사용자 홈페이지를 포함합니다. 로그인 시 사용자는 제3자 소셜 네트워크 계정을 사용하도록 선택할 수 있습니다. 로그인 후, 소셜 네트워크의 친구 정보를 보실 수 있습니다.
기존 소셜 네트워크 계정을 사용하여 로그인
소셜 네트워크와 통합된 가장 기본적인 기능은 사용자가 기존 계정을 사용하여 로그인할 수 있도록 하는 것입니다. 사용자는 새로운 계정을 등록하는 것 외에도 다른 웹사이트의 기존 계정을 사용하여 로그인할 수도 있습니다. 이 방법을 종종 제3자 웹사이트에 연결한다고 합니다. 사용자의 경우 일반적인 시나리오는 등록 또는 로그인 페이지에서 연결할 타사 소셜 네트워크를 선택하는 것입니다. 그런 다음 로그인 및 승인을 위해 타사 웹사이트로 이동하세요. 위 단계를 완료하면 새 사용자가 생성됩니다. 연결 프로세스 중에 애플리케이션은 제3자 소셜 네트워킹 사이트에서 사용자 프로필 정보를 가져와 새 사용자 생성을 완료할 수 있습니다. 새로운 사용자가 생성되면 해당 사용자는 다음 번에 제3자 소셜 네트워크의 계정을 사용하여 직접 로그인할 수 있습니다.
기본 구성
Spring Social은 타사 웹사이트 사용자 로그인 및 등록을 처리하는 Spring MVC 컨트롤러(Controller) 구현을 제공하며 소셜 네트워크 계정을 사용하여 로그인 및 등록 기능을 자동으로 완료할 수 있습니다. 이러한 컨트롤러를 사용하기 전에 몇 가지 기본 구성이 필요합니다. Spring Social의 구성은 org.springframework.social.config.annotation.SocialConfigurer 인터페이스를 구현하여 완료됩니다. SocialConfigurer 인터페이스를 구현하는 SocialConfig 클래스의 일부가 제공됩니다. "@EnableSocial" 주석은 Spring Social 관련 기능을 활성화하는 데 사용됩니다. "@Configuration" 주석은 이 클래스에 Spring 프레임워크와 관련된 구성 정보도 포함되어 있음을 나타냅니다. SocialConfigurer 인터페이스에는 구현해야 할 세 가지 메서드가 있습니다.
addConnectionFactories: 이 콜백 메서드는 애플리케이션이 지원해야 하는 소셜 네트워크에 해당하는 연결 팩토리 구현을 추가할 수 있도록 하는 데 사용됩니다.
getUserIdSource: 이 콜백 메소드는 현재 사용자를 고유하게 식별하는 데 사용되는 org.springframework.social.UserIdSource 인터페이스의 구현 객체를 반환합니다.
getUsersConnectionRepository: 이 콜백 메소드는 사용자와 소셜 네트워크 서비스 제공자 간의 통신을 관리하는 데 사용되는 org.springframework.social.connect.UsersConnectionRepository 인터페이스의 구현 객체를 반환합니다.
특히 샘플 애플리케이션의 경우 org.springframework.social.linkedin.connect.LinkedInConnectionFactory 클래스로 표시되는 LinkedIn 연결 팩토리 구현이 addConnectionFactories 메소드 구현에 추가됩니다. getUserIdSource 메소드 구현에서는 현재 로그인된 사용자의 정보를 얻기 위해 Spring Security를 사용합니다. getUsersConnectionRepository 메소드는 데이터베이스 기반 JdbcUsersConnectionRepository 클래스의 구현 객체를 생성합니다. LinkedInConnectionFactory 클래스는 Spring Social의 기능을 반영하는 방식으로 생성됩니다. LinkedIn에서 제공하는 기능을 바로 사용하시려면 LinkedIn에서 적용한 API Key만 입력하시면 됩니다. OAuth와 관련된 세부사항은 Spring Social에 의해 캡슐화됩니다.
1. Spring Social 기본 구성 사용
@Configuration@EnableSocialpublic class SocialConfig implements SocialConfigurer { @Inject private DataSource dataSource; @Override public void addConnectionFactories(ConnectionFactoryConfigurer cfConfig, Environment env) { cfConfig.addConnectionFactory(new LinkedInConnectionFactory(env.getProperty("linkedin.consumerKey"), env.getProperty("linkedin.consumerSecret"))); } @Override public UserIdSource getUserIdSource() { return new UserIdSource() { @Override public String getUserId() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication == null) { throw new IllegalStateException("Unable to get a ConnectionRepository: no user signed in"); } return authentication.getName(); } }; } @Override public UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator connectionFactoryLocator) { return new JdbcUsersConnectionRepository(dataSource, connectionFactoryLocator, Encryptors.noOpText()); } }
Login Controller
Spring Social 구성 후 다음 단계는 사용자 등록 및 로그인을 처리하는 해당 Spring MVC 컨트롤러를 생성하는 것입니다. Spring Social은 이미 해당 컨트롤러 구현을 제공하므로 요청을 수행하기 위한 인터페이스만 생성하면 됩니다. 가장 먼저 만들어야 할 것은 타사 소셜 네트워크를 통해 로그인하기 위한 컨트롤러입니다. 표시된 대로 필요한 컨트롤러를 생성하려면 Spring Bean만 생성하면 됩니다. 이 컨트롤러는 기본적으로 "/signin" URL에 바인딩되어 있습니다. 각 제3자 서비스 제공업체에는 LinkedIn의 식별자 "linkedin"과 같은 해당 식별자가 있습니다. 서비스 제공업체의 식별자는 다양한 컨트롤러의 URL에 포함되는 경우가 많습니다. 예를 들어 사용자가 LinkedIn 계정을 통해 로그인해야 하는 경우 해당 URL은 "/signin/linkedin"입니다. Twitter 계정을 통해 로그인하는 경우 해당 URL은 "/signin/twitter"입니다.
2. 타사 소셜 네트워크를 통한 로그인을 위한 컨트롤러
@Beanpublic ProviderSignInController providerSignInController(ConnectionFactoryLocator connectionFactoryLocator, UsersConnectionRepository usersConnectionRepository) { return new ProviderSignInController(connectionFactoryLocator, usersConnectionRepository, new SimpleSignInAdapter(new HttpSessionRequestCache())); }
위에서 SimpleSignInAdapter 클래스는 ProviderSignInController 클래스의 로그인 로직으로 작동하는 org.springframework.social.connect.web.SignInAdapter 인터페이스를 구현합니다. 애플리케이션 자체가 사이를 연결합니다. 사용자가 타사 웹 사이트에 대한 로그인을 완료하면 사용자는 SignInAdapter 인터페이스를 통해 자동으로 애플리케이션에 로그인됩니다. SimpleSignInAdapter 클래스의 구현은 아래와 같습니다.
3. SimpleSignInAdapter 클래스 구현
public class SimpleSignInAdapter implements SignInAdapter { private final RequestCache requestCache; @Inject public SimpleSignInAdapter(RequestCache requestCache) { this.requestCache = requestCache; } @Override public String signIn(String localUserId, Connection<?> connection, NativeWebRequest request) { SignInUtils.signin(localUserId); return extractOriginalUrl(request); } private String extractOriginalUrl(NativeWebRequest request) { HttpServletRequest nativeReq = request.getNativeRequest(HttpServletRequest.class); HttpServletResponse nativeRes = request.getNativeResponse(HttpServletResponse.class); SavedRequest saved = requestCache.getRequest(nativeReq, nativeRes); if (saved == null) { return null; } requestCache.removeRequest(nativeReq, nativeRes); removeAutheticationAttributes(nativeReq.getSession(false)); return saved.getRedirectUrl(); } private void removeAutheticationAttributes(HttpSession session) { if (session == null) { return; } session.removeAttribute(WebAttributes.AUTHENTICATION_EXCEPTION); } }
코드 목록 3에서 SimpleSignInAdapter 클래스의 signIn 메서드는 로그인을 위해 SignInUtils 클래스의 signin 메서드를 호출합니다. 해당 구현은 코드 목록 4를 참조하세요. signIn 메소드의 반환 값은 로그인 성공 후의 점프 URL입니다.
4. SignInUtils 클래스의 signIn 메서드 구현
public class SignInUtils { public static void signin(String userId) { SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(userId, null, null)); } }
프런트 엔드 페이지
LinkedIn을 통해 로그인 프로세스를 시작하려면 페이지를 통해 로그인 컨트롤러의 URL에 POST 요청만 실행하면 됩니다. 그림과 같이 양식을 제출하면 로그인 프로세스가 시작됩니다. 사용자는 먼저 LinkedIn 웹사이트의 승인 페이지로 이동하여 신청서를 승인한 후 등록할 수 있습니다.
5. 로그인 페이지
<form id="linkedin-signin-form" action="signin/linkedin" method="POST" class="form-signin" role="form"> <h2 class="form-signin-heading">Or Connect by</h2> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <button type="submit" class="btn btn-primary">LinkedIn</button> </form>
기본적으로 제3자 웹사이트 인증이 완료되면 사용자는 "/signup" URL에 해당하는 페이지로 이동하게 됩니다. 이 페이지에서 사용자는 관련 등록 정보를 추가할 수 있습니다. 동시에 사용자 이름 등 제3자 웹사이트에서 얻은 사용자 프로필 정보가 미리 입력될 수 있습니다. 양식이 제출된 후 이 페이지의 작업은 표시된 컨트롤러에 의해 처리됩니다.
6. 사용자 등록 컨트롤러 구현
@RequestMapping(value="/signup", method=RequestMethod.POST) public String signup(@Valid @ModelAttribute("signup") SignupForm form, BindingResult formBinding, WebRequest request) { if (formBinding.hasErrors()) { return null; } Account account = createAccount(form, formBinding); if (account != null) { SignInUtils.signin(account.getUsername()); ProviderSignInUtils.handlePostSignUp(account.getUsername(), request); return "redirect:/"; } return null; }
사용자가 등록 양식을 제출한 후, 사용자가 입력한 정보를 기반으로 해당 계정을 생성한 다음 새로 등록된 계정으로 로그인하고 홈페이지로 돌아갑니다.
API 사용
Spring Social 的另外一个重要的作用在于提供了很多社交网络服务的 API 的封装。当用户通过社交网络的账号登录之后,可以通过相应的 API 获取到相关的信息,或执行一些操作。比如获取到用户的好友信息,或是根据用户的要求发布新的消息。一般来说,很多社交网络服务提供商都有自己的 API 来提供给开发人员使用。不过一般只提供 REST API,并没有 Java 封装。Spring Social 的一个目标是为主流的社交网络提供相应的 Java 封装的 API。对于社区已经有良好的 Java 库的社交网络,如 Twitter,Spring Social 会进行整合与封装;而对于暂时没有 Java 实现的,Spring Social 的组件会提供相应的支持。如示例应用中使用的 LinkedIn 的 Java API 是由 Spring Social 开发的。
在使用 LinkedIn 的 Java API 之前,首先要创建相应的 Spring Bean,如所示。
7. 创建 LinkedIn API 对应的 Bean
@Bean@Scope(value="request", proxyMode=ScopedProxyMode.INTERFACES)public LinkedIn linkedin(ConnectionRepository repository) { Connection<LinkedIn> connection = repository.findPrimaryConnection(LinkedIn.class); return connection != null ? connection.getApi() : null; }
LinkedIn Java API 的核心接口是 org.springframework.social.linkedin.api.LinkedIn。如果当前用户已经连接了 LinkedIn 的账号,就可以通过 ConnectionRepository 接口找到该用户对应的连接的信息,并创建出 API 接口的实现。是展示 LinkedIn 上好友信息的控制器的实现。
8. 展示 LinkedIn 上好友信息的控制器的实现
@Controllerpublic class LinkedInConnectionsController { private LinkedIn linkedIn; @Inject public LinkedInConnectionsController(LinkedIn linkedIn) { this.linkedIn = linkedIn; } @RequestMapping(value="/connections", method= RequestMethod.GET) public String connections(Model model) { model.addAttribute("connections", linkedIn.connectionOperations().getConnections()); return "connections"; } }
通过 LinkedIn 接口的 connectionOperations 方法可以获取到 org.springframework.social.linkedin.api.ConnectionOperations 接口的实现,然后就可以再通过 getConnections 方法获取到包含好友信息的 org.springframework.social.linkedin.api.LinkedInProfile 类的对象列表。然后就可以在网页上展示,如所示。
9. 展示 LinkedIn 好友信息的页面
<ul class="media-list"> <c:forEach items="${connections}" var="connection"> <li class="media"> <a href="" class="pull-left"> <img class="lazy-load" data-original="${connection.profilePictureUrl}" alt="" class="media-object"> </a> <div class="media-body"> <h4 class="media-heading">${connection.firstName} ${connection.lastName}</h4> <p><c:out value="${connection.headline}" /></p> </div> </li> </c:forEach> </ul>
结束语
在社交网络日益流行的今天,Web 应用都应该考虑增加对社交网络的支持。这样既方便了用户,让他们省去了重新注册的麻烦,又可以增加用户粘性,同时可以通过社交网络进行推广。虽然很多社交网站都提供了开放 API 来让应用使用其服务,但是集成所需的工作量是不小的。Spring Social 作为 Spring 框架中的一部分,为在 Web 应用中集成社交网络提供了良好支持。本文详细介绍了如何通过 Spring Social 来实现通过社交网络账号进行登录以及使用社交网络提供的 API。
위 내용은 Spring Social을 사용하여 소셜 네트워크에 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











CrystalDiskMark는 순차 및 무작위 읽기/쓰기 속도를 빠르게 측정하는 하드 드라이브용 소형 HDD 벤치마크 도구입니다. 다음으로 편집자님에게 CrystalDiskMark 소개와 crystaldiskmark 사용법을 소개하겠습니다~ 1. CrystalDiskMark 소개 CrystalDiskMark는 기계식 하드 드라이브와 솔리드 스테이트 드라이브(SSD)의 읽기 및 쓰기 속도와 성능을 평가하는 데 널리 사용되는 디스크 성능 테스트 도구입니다. ). 무작위 I/O 성능. 무료 Windows 응용 프로그램이며 사용자 친화적인 인터페이스와 다양한 테스트 모드를 제공하여 하드 드라이브 성능의 다양한 측면을 평가하고 하드웨어 검토에 널리 사용됩니다.

Keep 체지방 측정기 연결 방법 Keep에는 특별히 고안된 체지방 측정기가 있지만 대부분의 사용자는 Keep 체지방 측정기 연결 방법을 모릅니다. 다음은 Keep 체지방 측정기 연결 방법에 대한 그래픽 튜토리얼입니다. 편집자가 사용자에게 제공합니다. 관심 있는 사용자가 와서 살펴보세요! Keep 체지방 측정기 연결 방법 1. 먼저 Keep 소프트웨어를 열고 메인 페이지로 이동하여 오른쪽 하단에 있는 [내]를 클릭하여 [스마트 하드웨어]를 선택합니다. 2. 그런 다음 내 스마트 장치 페이지에서 중앙의 [기기 추가] 버튼을 클릭한 후 인터페이스를 추가하려는 기기를 선택하고 [스마트 체지방/체중 측정기]를 선택합니다. 4. 그런 다음 기기 모델 선택 페이지에서 [체지방 측정기 유지] 옵션을 클릭합니다. 5. 마지막으로 아래 표시된 인터페이스에서 마지막으로 하단에 [지금 추가]를 선택합니다.

foobar2000은 언제든지 음악 리소스를 들을 수 있는 소프트웨어입니다. 모든 종류의 음악을 무손실 음질로 제공합니다. 음악 플레이어의 향상된 버전을 사용하면 더욱 포괄적이고 편안한 음악 경험을 얻을 수 있습니다. 컴퓨터에서 고급 오디오를 재생합니다. 이 장치는 보다 편리하고 효율적인 음악 재생 경험을 제공합니다. 인터페이스 디자인은 단순하고 명확하며 사용하기 쉽습니다. 또한 다양한 스킨과 테마를 지원하고, 자신의 선호도에 따라 설정을 개인화하며, 다양한 오디오 형식의 재생을 지원하는 전용 음악 플레이어를 생성합니다. 또한 볼륨을 조정하는 오디오 게인 기능도 지원합니다. 과도한 볼륨으로 인한 청력 손상을 방지하려면 자신의 청력 상태에 따라 조정하십시오. 다음엔 내가 도와줄게

업계 리더인 Spring+AI는 강력하고 유연한 API와 고급 기능을 통해 다양한 산업에 선도적인 솔루션을 제공합니다. 이 주제에서는 다양한 분야의 Spring+AI 적용 사례를 살펴보겠습니다. 각 사례에서는 Spring+AI가 어떻게 특정 요구 사항을 충족하고 목표를 달성하며 이러한 LESSONSLEARNED를 더 넓은 범위의 애플리케이션으로 확장하는지 보여줍니다. 이 주제가 여러분이 Spring+AI의 무한한 가능성을 더 깊이 이해하고 활용하는 데 영감을 줄 수 있기를 바랍니다. Spring 프레임워크는 소프트웨어 개발 분야에서 20년 이상의 역사를 가지고 있으며, Spring Boot 1.0 버전이 출시된 지 10년이 되었습니다. 이제 봄이 왔다는 것에 대해 누구도 이의를 제기할 수 없습니다.

NetEase Mailbox는 중국 네티즌들이 널리 사용하는 이메일 주소로, 안정적이고 효율적인 서비스로 항상 사용자들의 신뢰를 얻어 왔습니다. NetEase Mailbox Master는 휴대폰 사용자를 위해 특별히 제작된 이메일 소프트웨어로 이메일 보내기 및 받기 프로세스를 크게 단순화하고 이메일 처리를 더욱 편리하게 만듭니다. 따라서 NetEase Mailbox Master를 사용하는 방법과 그 기능이 무엇인지 아래에서 이 사이트의 편집자가 자세한 소개를 제공하여 도움을 드릴 것입니다! 먼저, 모바일 앱스토어에서 NetEase Mailbox Master 앱을 검색하여 다운로드하실 수 있습니다. App Store 또는 Baidu Mobile Assistant에서 "NetEase Mailbox Master"를 검색한 후 안내에 따라 설치하세요. 다운로드 및 설치가 완료되면 NetEase 이메일 계정을 열고 로그인합니다. 로그인 인터페이스는 아래와 같습니다.

오늘날 클라우드 스토리지는 우리의 일상 생활과 업무에 없어서는 안 될 부분이 되었습니다. 중국 최고의 클라우드 스토리지 서비스 중 하나인 Baidu Netdisk는 강력한 스토리지 기능, 효율적인 전송 속도 및 편리한 운영 경험으로 많은 사용자의 호감을 얻었습니다. 중요한 파일을 백업하고, 정보를 공유하고, 온라인으로 비디오를 시청하고, 음악을 듣고 싶은 경우 Baidu Cloud Disk는 귀하의 요구를 충족할 수 있습니다. 그러나 많은 사용자가 Baidu Netdisk 앱의 구체적인 사용 방법을 이해하지 못할 수 있으므로 이 튜토리얼에서는 Baidu Netdisk 앱 사용 방법을 자세히 소개합니다. Baidu 클라우드 네트워크 디스크 사용 방법: 1. 설치 먼저 Baidu Cloud 소프트웨어를 다운로드하고 설치할 때 사용자 정의 설치 옵션을 선택하십시오.

MetaMask(중국어로 Little Fox Wallet이라고도 함)는 무료이며 호평을 받는 암호화 지갑 소프트웨어입니다. 현재 BTCC는 MetaMask 지갑에 대한 바인딩을 지원합니다. 바인딩 후 MetaMask 지갑을 사용하여 빠르게 로그인하고 가치를 저장하고 코인을 구매할 수 있으며 첫 바인딩에는 20 USDT 평가판 보너스도 받을 수 있습니다. BTCCMetaMask 지갑 튜토리얼에서는 MetaMask 등록 및 사용 방법, BTCC에서 Little Fox 지갑을 바인딩하고 사용하는 방법을 자세히 소개합니다. MetaMask 지갑이란 무엇입니까? 3천만 명 이상의 사용자를 보유한 MetaMask Little Fox Wallet은 오늘날 가장 인기 있는 암호화폐 지갑 중 하나입니다. 무료로 사용할 수 있으며 확장으로 네트워크에 설치할 수 있습니다.

Apple은 화요일에 iOS 17.4 업데이트를 출시하여 iPhone에 수많은 새로운 기능과 수정 사항을 추가했습니다. 업데이트에는 새로운 이모티콘이 포함되어 있으며 EU 사용자는 다른 앱 스토어에서도 해당 이모티콘을 다운로드할 수 있습니다. 또한, 업데이트는 iPhone 보안 제어를 강화하고 사용자에게 더 많은 선택권과 보호 기능을 제공하기 위해 더 많은 "도난당한 장치 보호" 설정 옵션을 도입합니다. "iOS17.3에서는 최초로 '도난 기기 보호' 기능을 도입해 사용자의 민감한 정보에 대한 보안을 강화했습니다. 사용자가 집이나 기타 친숙한 장소를 떠나 있을 때 이 기능을 사용하려면 먼저 생체 정보를 입력해야 합니다. Apple ID 암호 변경, 도난 기기 보호 끄기 등 특정 데이터에 접근하고 변경하려면 정보를 다시 입력해야 합니다.
