pgAdmin 4修補重大身分驗證繞過漏洞,若未更新可能導致攻擊者冒充管理員
iThome 新聞
開源PostgreSQL資料庫管理工具pgAdmin 4於9月17日發布9.18版,修補4個漏洞,其中最嚴重的是可能導致繞過身分驗證的CVE-2026-86863,影響6.2至9.17版,建議用戶儘速升級。
Score: 55.77Confidence: 54%
View offerLoading the catalog…
THE AI OPPORTUNITY INDEX
Find your next AI tool. Explore free access, trials, and credits — all in one place.
iThome 新聞
開源PostgreSQL資料庫管理工具pgAdmin 4於9月17日發布9.18版,修補4個漏洞,其中最嚴重的是可能導致繞過身分驗證的CVE-2026-86863,影響6.2至9.17版,建議用戶儘速升級。
Score: 55.77Confidence: 54%
View offer爱范儿
DeepSeek 的价格护城河,迎来 OpenAI 的挑战 #欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。
Score: 55.2Confidence: 54%
View offervelog
PayPal is one of the most widely used online payment platforms for individuals, freelancers, and businesses. Because a verified account can provide access to payment features, some people search for verified PayPal accounts, PVA accounts, or aged PayPal accounts instead of creating a new account. 💥🚀🎀✅🎀💥🚀💥🎀✅✅🚀💥🎀✅🚀💥🎀✅ 🚀🚀↪ If you want to more information just contact no 🚀🚀↪ Order Now: https://smmallkyc.com 🚀🚀 ↪ 24 Hours Reply/Contact 🚀🚀 ↪ Telegram: @Smmallkyc 🚀🚀 ↪ WhatsApp: +1 (672) 224-5970 🚀🚀↪ Email: smmallkyc@gmail.com 🚀🚀↪ Product Visit Now: https://smmallkyc.com/product/get-verified-paypal-accounts/ 💥🚀🎀✅🎀💥🚀💥🎀✅✅🚀💥🎀✅🚀💥🎀✅ However, buying or transferring a PayPal account can create serious problems. PayPal accounts are connected to identity, payment information, security checks, and account history. A third-party account may not belong to the person using it, and this can lead to restrictions, verification requests, payment holds, or permanent limitations. For users researching this topic in 2026, the safest approach is to understand what PVA and aged accounts mean, the risks involved, and how to establish a PayPal account properly. What Is a Verified PayPal Account? A verified PayPal account is an account that has completed some of PayPal's required verification processes. Depending on the account and region, verification can involve personal information, email addresses, phone numbers, identity documents, payment methods, or other checks. A PVA, commonly meaning "Phone Verified Account," generally refers to an account associated with a verified phone number. The term does not automatically mean that the account has passed every identity or security check. An aged PayPal account generally means an account that was created some time ago. Age alone does not guarantee that an account is trustworthy, active, or suitable for another person to use. Why Do People Search for PVA or Aged Accounts? People may search for these accounts because they believe an older or verified account will make online payments easier. Freelancers, online sellers, and businesses may also think an established account can provide a faster start. The problem is that account age or previous verification does not transfer ownership rights. PayPal may require the current user to verify their identity and explain account activity. Therefore, an account that appears established may still become restricted when its activity does not match its original owner or normal usage. Risks of Buying a PayPal Account Before considering a third-party account, users should understand the potential risks. Account Restrictions PayPal can review accounts for security, compliance, or unusual activity. If the information associated with an account does not match the person using it, additional verification may be required. Payment Holds Payments can sometimes be delayed or held while PayPal reviews an account or transaction. A purchased account may create additional uncertainty because the account history belongs to someone else. Loss of Access The original account owner may still have recovery information connected to the account. This can create problems if passwords, phone numbers, email addresses, or security information are changed. Identity Verification Problems An account created using another person's identity cannot legitimately become your personal account simply because login credentials are transferred. If PayPal requests identity documents, the account holder may be unable to complete the process. Terms and Compliance Users should always review PayPal's current User Agreement and applicable policies before using an account. Creating or operating accounts under inaccurate identity information can create compliance issues. 💥🚀🎀✅🎀💥🚀💥🎀✅✅🚀💥🎀✅🚀💥🎀✅ 🚀🚀↪ If you want to more information just contact no 🚀🚀↪ Order Now: https://smmallkyc.com 🚀🚀 ↪ 24 Hours Reply/Contact 🚀🚀 ↪ Telegram: @Smmallkyc 🚀🚀 ↪ WhatsApp: +1 (672) 224-5970 🚀🚀↪ Email: smmallkyc@gmail.com 🚀🚀↪ Product Visit Now: https://smmallkyc.com/product/get-verified-paypal-accounts/ 💥🚀🎀✅🎀💥🚀💥🎀✅✅🚀💥🎀✅🚀💥🎀✅ A Safer Way to Get a Verified PayPal Account Instead of purchasing an account from an unknown seller, create an account directly through PayPal and complete the required verification steps. Start by using your real information. Select the account type that matches your needs, such as a personal or business account. Confirm your email address and phone number, then connect an eligible payment method when required. For businesses, make sure the business information matches official records. Keeping information consistent across your PayPal account, payment methods, and business documents can make future verification easier. Personal vs. Business PayPal Accounts A personal account is generally designed for individual users and everyday online payments. A business account is intended for commercial activities and may provide features that are more appropriate for companies, sellers, and organizations. Choosing the correct account type from the beginning is usually more practical than trying to obtain an aged or pre-verified account later. What Should You Check Before Using a Third-Party Service? If you are researching services related to PayPal accounts, avoid focusing only on claims such as "fully verified," "aged," or "instant delivery." Look for clear information about what the service actually provides. Be cautious about anyone asking you to use another person's identity, documents, bank details, or personal information. Never provide sensitive information to an unknown seller simply because they promise an established account. For educational information and online-account services, smmallkyc.com provides resources that can help users understand account-related topics, verification requirements, and safer ways to approach online platforms. Always confirm the current rules directly with PayPal before making an important account decision. Final Thoughts Searching for verified PayPal accounts, PVA accounts, or aged accounts in 2026 may seem like a shortcut, but purchasing an account can introduce ownership, verification, security, and compliance problems. 💥🚀🎀✅🎀💥🚀💥🎀✅✅🚀💥🎀✅🚀💥🎀✅ 🚀🚀↪ If you want to more information just contact no 🚀🚀↪ Order Now: https://smmallkyc.com 🚀🚀 ↪ 24 Hours Reply/Contact 🚀🚀 ↪ Telegram: @Smmallkyc 🚀🚀 ↪ WhatsApp: +1 (672) 224-5970 🚀🚀↪ Email: smmallkyc@gmail.com 🚀🚀↪ Product Visit Now: https://smmallkyc.com/product/get-verified-paypal-accounts/ 💥🚀🎀✅🎀💥🚀💥🎀✅✅🚀💥🎀✅🚀💥🎀✅ A safer long-term approach is to create your own PayPal account, use accurate information, complete the required verification, and follow the platform's current policies. This gives you direct control over your account and makes future verification much easier to manage. Whether you are a freelancer, online seller, or business owner, account ownership and accurate information are important parts of maintaining reliable access to online payment services. Rather than choosing an account based only on its age or verification status, focus on legitimate account setup, security, and compliance.
Score: 54.4Confidence: 49%
View offervelog
최고의 놀이터 시원상사 ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ 주소 시원상사주소.com 가입코드 AGY333 카톡 / 텔레그램 AGY333 ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ 가입 후 텔레그램으로 문의 주셔야 승인됩니다 신규회원 입금플러스 이벤트 3+2 5+3 10+5 20+7 30+10 50+15 (미니게임 입플참여시 롤링 500%) (카지노 이용 참여불가) 신규페이백 15% / 매일돌발 15% 라이브베팅 조합 가능 실배터 인증 보너스 이벤트 누적 충전금액 100만-1만포인트/ 300만-3만포인트/ 500만-5만포인트 1000만-10만포인트/ 5000만-50만포인트/ 1억 -100만포인트 레벨별 혜택 안내사항 1레벨 카지노 0.3% 슬롯 0.5% 2레벨 카지노 0.4% 슬롯 1.0% 3레벨 카지노 0.5% 슬롯 1.5% 4레벨 카지노 0.6% 슬롯 2.0% 5레벨 카지노 0.7% 슬롯 2.5% Vip레벨 카지노 0.8% 슬롯 3.0% VVip레벨 카지노1.2% 슬롯4.0% 카지노/슬롯 1회차당 베팅상한금 = 5,000,000원 당첨상한금 = 10,000,000원 미니게임 1회차당 베팅상한금 = 2,000,000원 당첨상한금 = 5,000,000원 크로스 베팅상한금 = 10,000,000원 당첨상한금 = 30,000,000원 스페셜 베팅상한금 = 2,000,000원 당첨상한금 = 5,000,000원 E-스포츠 및 라이브 베팅상한금 = 1,000,000원 당첨상한금 = 3,000,000원 넥스트 게임(넥스트 파워볼, 넥스트 파워사다리, 넥스트 1분링) 테더 이용 가능합니다 #라이브배팅 #코인가입사이트 #메이저카지노 #시원상사가입코드 #1인칭바카라 #단폴사이트 #코인전용사이트 #동행복권 #안전공원 #안전바카라 #코인파워볼 #코인놀이터 #시원상사코드 #메이저바카라 #보스코어게임 #토토mlb #슬롯사이트 #강원랜드바카라 #메이저놀이터 #메이저공원 #동행파워볼 #메이저사이트 #카지노블랙잭 #시원상사주소 #검증놀이터 #스포츠토토사이트 #안전사이트 #검증사이트 #페이백이벤트 #출석이벤트 #안전놀이터 #사설토토사이트 #시원상사추천인 #시원상사도메인 #테더놀이터 #안전카지노 #카지노사이트 #토토사이트 #333에이전시 #라이브베팅 #시원상사먹튀안전 #바카라보너스 #시원상사추천코드 #테더전용사이트 #테더가입사이트 메이저놀이터-안전사이트-메이저사이트-메이저카지노-시원상사먹튀검증-안전놀이터
Score: 54.4Confidence: 49%
View offervelog
질문 Q1: 레지스트리란? Docker 이미지를 저장하고 배포하는 저장소 서비스이다. 대표적인 예가 Docker Hub, AWS의 ECR이다. 레지스트리 안에는 이미지별 레포지토리가 있고, 레포지토리 안에서 latest 같은 태그로 이미지 버전을 구분한다. Docker Hub 외부에 공개가 되어 있지만 AWS ECR은 공개하고 싶지 않은 이미지를 저장할 때 주로 사용한다. Q2: 왜 Docker Client는 Docker Daemon과 TCP/IP 네트워크 통신이 아닌 Unix socket 파일 시스템 통신을 하지? Linux에서 Docker CLI는 기본적으로 /var/run/docker.sock을 통해 Docker Daemon에 요청한다. 여기서 소켓은 일반 파일처럼 디스크에 데이터를 쓰고 읽는 방식이 아니다. 파일 경로를 접점으로 사용하는 프로세스 간 통신 방식이다. 핵심은 같은 컴퓨터 안의 Docker Daemon에 접근할 수 있는 사용자를 운영체제 권한으로 제한하고, Docker 제어 API를 네트워크에 노출하지 않기 위해서이다. Q3: 보안 그룹이 필요한 이유? EC2나 RDS 같은 AWS 리소스에 허용할 네트워크 통신을 제한하기 위해서이다. 가상 방화벽 역할을 한다. Q4: 인바운드 규칙이란? 리소스로 들어오는 트래픽을 허용하는 규칙이다. Q5: VPC란? Virtual Private Cloud이며, AWS 안에서 사용하는 논리적으로 분리된 가상 네트워크이다. Q6: Docker Compose란? 여러 컨테이너의 실행 설정을 YAML 파일로 정의하고 함께 관리하는 도구이다. Q7: 이미지 레이어란? Docker 이미지를 구성하는 파일 시스템 변경 사항의 단위이다. Docker에서는 변동이 생기면 전체 파일을 다시 저장하는 대신, 이번 단계에서 추가된 파일을 새 레이어에 저장한다. 여기서 기존 레이어는 그대로 유지된다. Q8: sudo의 뜻? 다른 사용자의 권한으로 명령을 실행하는 명령어이다. 기본적으로 root 권한을 사용한다. IAM IAM: Identity and Access Management. AWS 리소스에 대한 접근을 안전하게 관리할 수 있도록 도와주는 서비스. Dockerfile 작성 및 이미지 빌드 # JDK 21 기반의 OpenJDK 이미지를 사용 FROM openjdk:21-jdk-slim # 작업 디렉토리 설정 WORKDIR /app # 빌드된 JAR 파일을 컨테이너에 복사 COPY build/libs/*.jar app.jar # 8080 포트 노출 EXPOSE 8080 # 애플리케이션 실행 ENTRYPOINT ["java", "-jar", "app.jar"] 위처럼 Dockerfile을 생성하여 입력을 하고 Docker 이미지 빌드를 하였지만 오류가 발생하였다. Docker Hub의 openjdk 이미지는 공식적으로 사용 중단 권고 상태이며 대체 이미지를 사용하도록 안내하고 있다고 한다. 따라서 아래와 같은 코드를 입력하였다. 코드 설명 FROM eclipse-temurin:21-jdk 이미지의 기반이 될 이미지를 지정한다. Java를 직접 설치하는 대신, 이미 설치된 환경에서 시작하는 것이다. WORKDIR /app 컨테이너 내부의 작업 폴더를 /app으로 설정한다. 폴더가 없으면 생성된다. COPY build/libs/*.jar app.jar 내 컴퓨터에서 빌드한 JAR 파일을 이미지 안으로 복사한다. EXPOSE 8080 이 컨테이너의 애플리케이션이 8080 포트를 사용할 예정이라는 정보를 표시한다. Docker Push docker push [MY DOCKER ID]/springboot-twitter:latest Docker Push 과정 Docker CLI가 Docker Hub API를 통해 인증을 확인한다. 이미지 레이어가 Docker Hub로 전송된다. 업로드가 완료되면 Docker Hub 웹사이트에서 이미지를 확인할 수 있다. Docker Pull docker pull [MY DOCKER ID]/springboot-twitter:latest Docker Pull 과정 Docker CLI는 Docker Hub API를 통해 이미지 메타데이터를 요청한다. 필요한 레이어만 다운로드한다. 다운로드가 완료되면 로컬에서 이미지를 사용할 수 있다. EC2에서 MySQL 클라이언트 설치 sudo dnf install -y mysql-community-client 이렇게 하니까 안 되고 sudo dnf install -y mariadb105 이렇게 하니까 됨.
Score: 54.4Confidence: 49%
View offervelog
Hills of Steel MOD là game hành động 2D kết hợp vật lý, nơi bạn điều khiển xe tăng vượt qua những địa hình đồi dốc và chiến đấu với đối thủ. Phiên bản MOD giúp giảm thời gian cày tài nguyên, thuận tiện hơn khi mở khóa và nâng cấp nhiều loại xe tăng. Tính năng nổi bật: ✅ Vô hạn tiền / Coins ✅ Vô hạn Gems ✅ Mở khóa nhiều xe tăng ✅ Nâng cấp xe nhanh hơn ✅ No ADS Link tải: https://lmhmod.me/hills-of-steel-mod/ #HillsOfSteel #HillsOfSteelMOD #HackHillsOfSteel
Score: 54.4Confidence: 49%
View offervelog
一、深度喜歡你,貪戀親密的氛圍感 親吻是情侶之間最直接、最純粹的愛意表達。對於真心喜歡你的男生來說,親吻不只是一個簡單的動作,更是感受彼此愛意、拉近彼此距離的方式。在親親的過程中,他能獲得滿滿的安全感和幸福感,這種美好的感受會讓人產生依戀心理。結束親吻後,這種愉悅的情緒還在延續,下意識就會想再次親近你。這是最純粹的心動表現,說明他發自內心接納、喜歡你,沉浸在和你的親密相處中,對你有著極強的好感和貪戀。 二、佔有欲的溫柔體現,專屬感強烈 適度的佔有欲是戀愛中的正常心理。男生面對深愛的女生,會產生 女性催情春藥 、 強效迷幻藥 、 昏睡催眠藥 、 男性補腎壯陽 、 男性陰莖增大 天然的專屬欲,希望透過親密的肢體接觸,確認彼此的戀愛關係,感受獨屬於自己的甜蜜。反覆想要親吻你,是他溫柔佔有欲的表現,沒有任何功利性,只是單純想確認你屬於他,強化彼此的親密連結。和強勢的佔有慾不同,這種行為充滿愛意,是珍惜這段感情的直覺體現。 三、沉浸戀愛氛圍,享受雙向奔赴的甜蜜 如果你們的相處氛圍輕鬆甜蜜,雙向的愛意互動會讓男生愈發沉浸其中。相較於平淡的相處,親密的親吻互動能讓戀愛的幸福感翻倍。他持續想要親親,是因為享受當下的戀愛狀態,珍惜和你獨處的時光,想要留住這份甜蜜時刻。這也側面說明你們的感情狀態很好,雙向奔赴、氛圍融洽,彼此都深陷這段親密關係。 總結 總的來說,男友親完還想一直親,是愛意、安全感、佔有慾和情緒依戀的綜合體現,是戀愛中非常美好的正向表現,無需過度擔憂。這代表祂深深愛你、依賴你,十分珍惜你們的感情。如果覺得過於黏人,可以溫柔溝通,約定彼此舒適的親密節奏,既能保留戀愛甜蜜,也能讓相處更加舒服自在。
Score: 54.4Confidence: 49%
View offervelog
Gmail is one of the most popular email services in the world. People use Gmail for communication, business, online services, cloud storage, newsletters, and many other activities. Because of this popularity, there is growing interest in old Gmail accounts, sometimes described as aged Gmail accounts. 💥🚀🎀✅🎀💥🚀💥🎀✅✅🚀💥🎀✅🚀💥🎀✅ 🚀🚀↪ If you want to more information just contact no 🚀🚀↪ Order Now: https://smmallkyc.com 🚀🚀 ↪ 24 Hours Reply/Contact 🚀🚀 ↪ Telegram: @Smmallkyc 🚀🚀 ↪ WhatsApp: +1 (672) 224-5970 🚀🚀↪ Email: smmallkyc@gmail.com 🚀🚀↪ Product Visit Now: https://smmallkyc.com/product/get-old-gmail-accounts/ 💥🚀🎀✅🎀💥🚀💥🎀✅✅🚀💥🎀✅🚀💥🎀✅ An old Gmail account may have been created several years ago and may have a longer history than a newly created account. However, buying an existing Gmail account from an unknown source can create security, privacy, and ownership problems. Google accounts are personal credentials, and users should always consider Google's current policies before transferring or purchasing an account. This guide looks at 17 types of sites and services people may encounter when searching for old Gmail accounts, while explaining safer ways to approach the topic. 1. Google Gmail The official Gmail service is the most direct way to create an email account. Users can register an account using their own information and manage its security settings themselves. 2. Google Account Services A Google Account provides access to Gmail along with other Google services. Creating your own account gives you direct control over recovery information, passwords, and security settings. 3. Google Workspace Businesses and organizations can use Google Workspace for professional email and productivity tools. It can be a better option for companies that need business email rather than purchasing personal accounts. https://smmallkyc.com/product/get-old-gmail-accounts/ 4. Business Email Providers Businesses looking for established email addresses can consider professional email providers. These services allow organizations to create accounts connected to their own domain. 5. Domain Email Services A custom-domain email can provide a professional alternative to purchasing an old Gmail account. Businesses can create addresses such as name@company.com while maintaining complete ownership. 6. Email Hosting Platforms Email hosting companies provide tools for creating and managing mailboxes. These services can be useful when a business needs multiple addresses for employees or departments. 7. Website Hosting Companies Many website hosting providers include email services with hosting packages. Users can create professional addresses without purchasing accounts belonging to other people. 8. Business Technology Agencies Technology agencies can help companies set up email systems, migrate mailboxes, and configure security settings. This provides a legitimate way to establish an organized email environment. 9. Digital Marketing Agencies Some digital marketing agencies provide email setup and management services. Businesses should ensure that accounts remain under their own ownership and that all activities follow platform rules. 10. IT Support Companies IT professionals can help configure Gmail, Google Workspace, recovery options, two-factor authentication, and other security features. 11. Email Migration Services Companies moving from one email provider to another can use professional migration services. These services can transfer appropriate business data while preserving organizational control. 12. Freelancer Platforms Businesses can hire freelancers to help with email configuration, website integration, and business communication systems. The freelancer should provide technical assistance rather than transfer someone else's personal account. 13. Business Setup Services Entrepreneurs can work with legitimate business setup providers to establish the infrastructure needed for professional communication, including domain-based email. 14. E-Commerce Technology Providers Online stores often need separate email addresses for customer support, orders, and administration. E-commerce technology providers can help create and organize these accounts. 15. Productivity Software Providers Productivity platforms offer alternatives for communication, document management, calendars, and team collaboration. These services can reduce the need to purchase old personal accounts. 16. Professional Email Consultants Email consultants can help individuals and businesses select appropriate email solutions, configure security, and manage multiple mailboxes. 17. Smmallkyc.com People researching online account services may also come across smmallkyc.com. Before using any third-party account provider, customers should carefully review its policies, ownership terms, security practices, refund conditions, and verification requirements. What Is an Old Gmail Account? An old Gmail account is generally an account that was created some time ago. The term "aged Gmail account" is commonly used by third-party sellers to describe accounts that have existed for months or years. Account age alone does not guarantee reliability, security, or access to particular Google features. A buyer should therefore avoid assuming that an older account automatically provides better results. Why Do People Search for Old Gmail Accounts? Some users believe older accounts may appear more established than newly created accounts. Businesses may also want email addresses that have existed for a longer period. However, account age is only one characteristic. Security history, ownership, recovery information, account activity, and compliance with Google's policies can also matter. Risks of Buying Old Gmail Accounts Buying an account from an unknown seller can create several risks. The previous owner may still have recovery access. The account could also contain personal information, have an unknown security history, or become inaccessible after Google requests verification. There is also the possibility that a seller provides the same account to multiple buyers or fails to provide permanent ownership. For these reasons, users should be cautious when they see advertisements promising cheap, fully established, or unlimited Gmail accounts. Safer Alternatives to Buying Old Gmail Accounts Creating a new Gmail account is usually the simplest approach for personal email. Businesses that need professional communication can consider Google Workspace or a custom-domain email system. Users can also improve the security and usefulness of a legitimate account by enabling two-step verification, adding recovery information, using a strong unique password, and keeping account information accurate. Final Thoughts Searching for the Top 17 Sites to Buy Old Gmail Accounts: A Complete Guide can lead users to many third-party marketplaces and account providers. However, an old account is not automatically a better or safer account. Before purchasing or transferring any account, users should consider Google's policies, account ownership, privacy, recovery access, and security. For many users, creating and managing their own Gmail or professional email account is a more straightforward solution. For readers researching online account-related services and digital solutions, smmallkyc.com can be another resource to explore. Always review the available information carefully and choose an approach that protects your account access and personal information.
velog
우선, 지금까지 봤던 전체적인 흐름은 다음과 같다. Day 1 CPU → Fetch → Decode → Execute Day 2 CPU ↔ Cache ↔ RAM Day 3 CPU는 주소를 이용해 메모리에 접근 Day 4 CPU와 메모리는 Address / Data / Control 정보를 주고받음 주로, CPU 와 메모리에 대해서만 봤다. 하지만, 컴퓨터에는 메모리만 존재하는게아니라, 여러가지 장치들이 존재한다. 키보드 / 마우스 / 모니터 / USb ... 이런 장치들을 I/O ( Input / Output )Device, 입출력 장치 라고 한다. 오늘은, CPU 와 입출력 장치 ( 외부 장치)는 어떻게 데이터를 주고받을까? 에 대해서 알아보자. 우리가 키보드로 어떠한 문자를 친다고하자. 키보드 A 누름 ↓ 화면에 A 출력 하지만, 컴퓨터 입장에서는 여러가지 문제들이 있다. 우선, CPU는 키보드가 아니다. 키보드가 어떠한 방식으로 신호들을 만드는지를 CPU 가 다 알아야한다면, CPU 는 해야할일이 너무나도 많아진다. 즉, 외부장치와 CPU 의 연결고리? 역할이 필요하다. ( CPU 와 외부장치 사이에서 장치를 제어해주는 하드웨어 ) 이를 대표적으로, Device Controller 가 진행해준다. Device Controller CPU - 키보드 CPU │ ↓ Device Controller │ ↓ Keyboard CPU - 네트워크 장치 CPU │ ↓ Network Controller │ ↓ Network ... Device Controller -> 해당 장치와 관련된 제어를 담당한다. 그래서, CPU 는 외부장치가 어떻게 신호를 만드는지 알 필요가 없게된다. Device Controller 안에는, 어떤것들이 존재할까? 우선, 3가지를 먼저 알아보자. ┌─────────────────────┐ │ Device Controller │ │ │ │ Data Register │ │ Status Register │ │ Control Register │ └─────────────────────┘ Data Register 실제 데이터를 보관한다. ( 키보드 입력값, 네트워크에서 받은 데이터 ... ) Status Register 장치 상태를 나타낸다. ( READY, ERROR, BUSY ) 즉, 지금 작업이 가능한가를 나타낸다. Control Register CPU 가 외부 장치에게 어떤 작업을 시킬지를 전달한다. ( READ, WRITE, START ) ... 이는, Bus 에 대한것과 매우 비슷하게 느껴진다. Address Bus , Data Bus , Control Bus 아래와 같이 Java 프로그램에서, 키보드 입력을 받는 코드가있다. Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); scanner.nextLine() 을 통해, 사용자 입력을 받는 코드이다. 내부적으로는, 많은 일들이 일어난다. 사용자 ↓ Keyboard ↓ Keyboard Controller ↓ Device Driver ↓ OS ↓ JVM ↓ Java Program 이전에 봤듯이, CPU 의 처리속도는 굉장히 빠르다. 반면, 키보드는 CPU 에 비하면 매우 느리다. 또한, 사람이 키보드를 누르는 속도도 CPU 처리속도에 비하면 굉장히 느리다. 그럼 CPU 는 다음과 같은 과정들을 계속 진행해서, 입력값이 있는지 없는지를 계속 판단하는것일까? CPU: "키보드 입력 왔어?" 아니. "왔어?" 아니. "왔어?" 아니. "왔어?" 아니. "왔어?" YES. CPU가 계속해서, 장치 상태를 확인해보는것이다. 이를, Polling 방식이라고 한다. Polling 우선, 논리가 비교적 단순하다는것이다. ( 계속해서 확인하는거니까. ) 하지만, 문제가 있다. CPU 가 계속해서, "입력 왔음?" 이라는것을 확인한다. CPU 가 계속해서 이러한 것들을 확인한다고 하자. 그렇다면, CPU 는 시간을 낭비하게 된다. 이러한 시간을 낭비하지않고 다른것들을 하게된다면 Java 실행 와 같은 여러가지 일들을 처리할 수 있을것이다. 또한, 키보드는 자주 입력하지 않는 장치라고 볼 수 있다. 이러한 상황에서 키보드가 입력 되었는지를 확인을 Polling 방식으로 계속해서 한다면, CPU 입장에서는 굉장히 비효율적이다. 그렇기에, 해당 문제를 해결해야할 필요가 있다. 계속해서 CPU가 상태를 확인하는게아니라, 입력이 되었을때만 CPU 에게 알려주면 되는거아닐까? 이게, Interrupt 이다. Interrupt ? CPU 가 프로그램을 실행하고 있다고 하자. CPU Java 명령어 실행 ↓ 다음 명령어 ↓ 다음 명령어 ↓ 다음 명령어 CPU 는 자기가 해야할 일을 계속해서 하고있는것이다. 어느순간, 사용자가 키보드를 눌러서 값을 입력한다. Keyboard ↓ Controller ↓ "CPU야 입력 들어왔어!" ↓ Interrupt ↓ CPU Interrupt 를 통해 CPU는 이벤트가 발생했다는것을 알아챈다. 즉, CPU 는 필요한 시점에만, 해당 이벤트를 처리한다. Polling 방식에서는 Polling CPU → 장치 확인 CPU → 장치 확인 CPU → 장치 확인 CPU → 장치 확인 위와같이 CPU 가 계속해서 장치를 확인하는 방식이였다. Interrupt 를 통해서, CPU → 자기 일 하는 중 CPU → 자기 일 하는 중 CPU → 자기 일 하는 중 ← 장치가 알림! ( Interrupt) CPU → 이벤트 처리 위와 같은 과정으로 진행할 수 있다. DAY 1 에서, CPU 는 아래와 같은 방식으로 명령어를 처리한다고 했었다. PC ↓ Fetch ↓ Decode ↓ Execute ↓ PC ↓ 다음 명령어 CPU 가 명령어들을 실행하고 있던도중에, Interrupt 를 통해서 이벤트가 발생했다는것을 알았다. Program 실행 1000 ↓ 1001 ↓ 1002 ↓ !!! Interrupt !!! ↓ 키보드 처리 ↓ ??? CPU 가, 키보드 처리를 하고나서 ( 이벤트처리 ) 원래 명령어를 처리하던곳으로 돌아가야한다. 즉, 이벤트 처리전에 1002 까지 실행하고 있었기때문에, 이벤트를 처리하고 나서는 1002 다음을 실행해야한다. 그러기 위해서는, CPU 가 기존 실행 상태를 기억해야만 한다. 여기서, Register 상태 / Program Counter / Context 와 같은 개념들이 (다시) 등장한다.
velog
雄固吃法怎麼掌握?本文解析Slivigy雄固Dapoxetine達泊西汀30mg多久前吃、一次吃多少、24小時用藥限制,以及空腹、飯後、飲水與酒精注意事項,並說明自行補吃、增加劑量、混用其他藥物及出現頭暈時的安全處理原則。 搜尋「 雄固吃法 」時,最多人想知道的通常只有一件事:到底要提前多久吃? 如果雄固Slivigy標示主要成分為 Dapoxetine(達泊西汀)30mg,答案確實有一個常見時間範圍——約在預計性行為前 1~3小時使用。 但真正值得注意的是:Dapoxetine不是越早吃越好,也不是效果不明顯就多吃一顆。 雄固多久前吃?為什麼是1~3小時? EMA的Priligy官方產品資訊指出,建議起始劑量為30mg,通常於預計性行為前約1~3小時按需使用,而且不應每天固定服用,也不應在24小時內使用超過一次。 因此,如果從Dapoxetine的一般用藥資訊理解雄固吃法,可以濃縮成: 30mg起始 → 性行為前約1~3小時 → 按需使用 → 24小時內不超過一次。 但這是Dapoxetine/Priligy層級的官方資訊,不能在沒有特定產品核准仿單佐證時,直接宣稱就是雄固Slivigy的台灣核准用法。 空腹還是飯後?其實「水」更值得注意 Dapoxetine可隨餐或不隨餐使用,因此不是只有空腹才能產生作用。官方產品資訊同時建議,藥錠應整顆吞服,並至少搭配一整杯水。 這個看似普通的細節,和Dapoxetine可能造成的頭暈、姿勢性低血壓及暈厥風險有關。 酒精則是另一回事。 EMA患者資訊明確建議使用Dapoxetine時避免酒精,因為酒精可能增加嗜睡、頭暈、反應變慢與暈厥風險。 所以「 雄固 吃法」真正需要記住的不是只有時間,而是: 時間、劑量、飲水與酒精,四件事缺一不可。 效果不夠,可以再補一顆嗎? 不建議。 「第一次感覺不明顯,再補一顆」是很容易出現的錯誤用藥邏輯。 Dapoxetine大型隨機雙盲研究確實發現30mg與60mg都能改善早洩相關指標,但較高劑量同時伴隨較高的部分不良反應。例如噁心由30mg組約8.7%增加至60mg組約20.1%,頭暈則由約3.0%增加至6.2%。 所以: 效果不足 ≠ 可以自行加量。 也不應因為第一次效果不符合期待,就在同一個24小時內再補服。 可以跟威而鋼、犀利士一起吃嗎? 這個問題不能只回答「可以」或「不可以」。 Dapoxetine與PDE5抑制劑併用曾有臨床研究,但研究是在特定受試者與醫療條件下進行,不能直接轉化成「所有人都能自己混著吃」。 如果同時存在早洩與勃起功能障礙,更合理的方式是分別評估兩個問題,以及血壓、心血管狀況與其他正在服用的藥物。 特別是正在使用其他SSRI、MAOI或會影響血清素的藥物,更不應自行與Dapoxetine併用。 雄固 吃法FAQ|10個常見問題 雄固怎麼吃? 以Dapoxetine一般官方資訊而言,30mg通常作為起始劑量,按需使用,而不是每天固定服用。 雄固 多久前吃? Dapoxetine/Priligy官方資訊通常建議預計性行為前約1~3小時。 雄固 一天可以吃幾次? Dapoxetine官方資訊規定24小時內不應超過一次。 雄固 可以空腹吃嗎? Dapoxetine可隨餐或不隨餐使用。 吃 雄固 需要配水嗎? 官方資訊建議整顆吞服並至少搭配一整杯水。 雄固 可以配酒嗎? 不建議。酒精可能加重頭暈、嗜睡及暈厥等風險。 雄固30mg 沒感覺可以再補一顆嗎? 不應自行補服,尤其不能因此突破24小時一次的限制。 雄固 30mg效果不好可以自己改60mg嗎? 不建議。較高劑量可能增加部分副作用,應由醫療專業人員評估。 雄固 可以跟威而鋼或犀利士一起吃嗎? 不能把臨床研究中的特定併用情境理解為所有人都適合自行混用;同時有PE與ED者應接受個別評估。 吃完雄固感覺快昏倒怎麼辦? 應停止活動並立即坐下或躺下,避免跌倒;若真正失去意識,或症狀嚴重、持續,應尋求醫療協助。 專欄結語:「雄固吃法」真正容易出錯的地方,通常不是忘記「1~3小時」這個數字,而是把Dapoxetine當成可以隨意補吃、加量或混藥的普通保健品。從Dapoxetine的官方用藥資訊來看,更值得記住的是:按需使用、30mg通常為起始劑量、提前約1~3小時、24小時不超過一次、足量飲水並避免酒精。至於雄固Slivigy特定產品的實際核准用法,仍應以所在地核准仿單及醫師、藥師指示為準。 更多相關資訊,可以登入台灣醫誠藥局查看: https://www.yc19.com/ 印度必利勁: https://www.yc19.com/shop/priligy60mg/ 原廠必利勁: https://www.yc19.com/shop/priligy30mg/ 雙效必利勁: https://www.yc19.com/shop/tadarad120mg/ 原廠威而鋼: https://www.yc19.com/shop/viagra100mg/ 威而鋼學名藥: https://www.yc19.com/shop/cenforce-100/ 臺廠威而鋼:速立壯 https://www.yc19.com/shop/silden-100mg/ 臺廠威而鋼:雄讚 https://www.yc19.com/shop/slivien-100mg/ 雙效威而鋼藍P: https://www.yc19.com/shop/p-force/ 超級雙效威而鋼藍鑽: https://www.yc19.com/shop/stenagra200mg/ 犀利士: https://www.yc19.com/shop/cialis20mg/ 樂軒昂 20mg: https://www.yc19.com/shop/lonfilis-20mg/ 犀利士5mg: https://www.yc19.com/shop/tadarise-5mg/ 印度犀利士20mg: https://www.yc19.com/shop/tadacip-20mg/ 犀利士學名藥: https://www.yc19.com/shop/tadarise-40mg/ 雙效犀利士100mg: https://www.yc19.com/shop/tadarise-100mg/ 超級必利勁: https://www.yc19.com/shop/tadarad120mg/ 樂威壯20mg: https://www.yc19.com/shop/levifil-20mg/ 雙效樂威壯: https://www.yc19.com/shop/vardenafil-100mg/ 液態威而鋼: https://www.yc19.com/shop/super-p-force/ 果凍威而鋼: https://www.yc19.com/shop/kamagra-100mg/ 威而鋼口溶片: https://www.yc19.com/shop/kamagra100mg/ 威而鋼發泡錠: https://www.yc19.com/shop/kamagra/ 女用威而鋼: https://www.yc19.com/shop/femafill/ 賽倍達雙效錠: https://www.yc19.com/shop/super-filana/ 菱形雙效威而鋼: https://www.yc19.com/shop/super-kamagra/ 德國紅魔: https://www.yc19.com/shop/vigora/ 雄固: https://www.yc19.com/shop/slivigy-30mg/ 超級雙效樂威壯金鑽: https://www.yc19.com/shop/vidofil140mg/ 超級雙效犀利士紅鑽: https://www.yc19.com/shop/tadarad140mg/ 巔峯藍P雙效威而鋼: https://www.yc19.com/shop/krrista220mg/ 雙效口溶膜片: https://www.yc19.com/shop/nirvalab/ 日本川井持久噴霧: https://www.yc19.com/shop/delay5ml/ 賽倍達雙效錠: https://www.yc19.com/shop/super-filana/ 女用威而柔: https://www.yc19.com/shop/femafill/ 菱形雙效威而鋼: https://www.yc19.com/shop/super-kamagra/ 德國紅魔: https://www.yc19.com/shop/vigora/ 樂軒昂: https://www.yc19.com/shop/lonfilis-20mg/ 樂威壯學名藥 https://www.yc19.com/shop/levifil-20mg/ 液態威而鋼: https://www.yc19.com/shop/super-p-force/ 雄讚: https://www.yc19.com/shop/slivien-100mg/ 雄固: https://www.yc19.com/shop/slivigy-30mg/
velog
※ 출처 : https://www.nhncloud.com/kr/resource/edu-center 수강 목적 안녕하세요. 저는 클라우드·GPU·AI 인프라 다루는 일을 합니다. 업무를 하면서 클라우드 IaaS, PaaS, SaaS 등 개별 서비스의 스펙이나 특징들은 어느 정도 익숙하지만, 그것들이 늘 머리 속에서 조합되지 않고, 분산되어 흩어져있다는 갈증이 있었습니다. 서비스 하나하나는 알겠는데, 전체 시스템이나 엔드서비스 관점에서 어떻게 설계되어야 하고, 어떤 방식으로 작동되는지, 그 과정에서 발생하는 이슈&리스크와 그 해결방법을 알고 싶었습니다. 그러던 중 NHN Cloud 교육센터의 “NHN Cloud Training: Cloud Architecting” 강의를 알게 되었습니다. 오프라인에서 총 3일 동안 진행되는 교육이라서 여건이 되지 않아 매번 신청과 취소를 반복하다가 최근 유일하게 시간이 생겨서 수강하게 되었습니다. 결론 먼저 말씀드리면 단순히 자격증 취득 목적 뿐만 아니라 실무에서 바로 활용할 수 있는 지식과 스킬을 배울 수 있는 값진 강의였습니다. 교육 개요 교육명칭 : NHN Cloud Training: Cloud Architecting 교육레벨 : 중급(Intermediate) 교육장소 : 서울 서초구 서초대로74길 33(서초동, 비트빌딩) 4층 강의장 교육구성 : 개념이론 + 실습(총 12개 Lab) 혼합 강의 교육일정 : 총 3일간 1일차 : Organization & Project, Network, Compute 2일차 : Storage & Database, Enhanced the Architecture, Journey to Cloud Native 3일차 : Notification & Data Platform, AI Services & ML, Security, Infrastructure as Code, Suggestion for Cloud Architect 비고(링크) : https://edu.nhncloud.com/api/lecture/v1/lectures/eb61f19a-7b25-43c4-8f64-c5624261260d/link 배운 내용(개조식) ※ 본 내용은 교육 중 개인적으로 정리한 메모를 바탕으로 작성되었으며, 실제 강의 내용 및 NHN Cloud 제품 사양과 일부 다르거나 부정확할 수 있습니다. 정확한 내용은 NHN Cloud 공식 문서 또는 교육 자료를 참고해 주시기 바랍니다. 1일차 ※ 실습 시 리전(판교 or 평촌) 설정이 중요하므로 강사님 가이드를 유의하고 숙지해야 합니다. Organization & Project 조직: 최상위 논리 컨테이너, 비용 청구 단위, 만든 사람이 오너(최고 권한), 삭제 시 하위 리소스 전부 사라지고 복구 불가 계정: 클라우드 계정(회원가입/결제 주체) vs IAM 계정(오너/어드민이 발급, 무료, 실제 작업용). 실습은 클라우드 계정 1개 + IAM 계정 5개로 역할별 Task 수행 거버넌스: 특정 IP만 콘솔 접속 허용, 민감 서비스(Key Manager 등) 사용 승인 강제, 2차 인증 강제, 로그인 실패 잠금 등 조직 차원 정책 설정 가능 기타: 클라우드 트레일(활동 로그, 기본 90일 보관, 장기보관은 Object Storage 연동), 리소스 왓처(전체 리소스 통합 조회/태그 필터링) Network VPC: 논리적 가상 사설망. 1개는 무료, 추가 시 과금 라우팅: VPC 생성 시 기본 라우팅 테이블이 암시적 연결됨 — 인터넷/피어링 등 별도 경로 필요 시 명시적 연결로 분리(퍼블릭/프라이빗 분리의 핵심) 보안그룹 vs NACL: 보안그룹(인스턴스 레벨, Stateful, 화이트리스트만) vs NACL(서브넷/VPC 레벨, Stateless, 룰 개수 제한) Compute 인스턴스: 온프레미스 대비 스펙 변경이 콘솔 몇 번 클릭으로 즉시 가능 가용성 존(AZ): 존별 인스턴스 분산 배치 + 로드밸런서로 고가용성 구현 접근 통제: 공인 IP 직접 접속 지양, NHN Bastion 경유 원칙(IP 허용, 명령 통제, 세션 로그 6개월 보관, 웹터미널 지원) 2일차 Storage & Database 문제 확인: LB로 요청이 분산되면 인스턴스마다 DB/이미지가 달라 정상 동작 안 함(스토리지/DB 자체를 분리하는 설계가 필요) 스토리지: 블록 스토리지(인스턴스 마운트형, AZ 제약, 스냅샷 지원) / NAS(공유형, NFS+CIFS, 확장·축소 자유) / 오브젝트 스토리지(HTTP/REST 전용, 무제한 용량, 스탠다드/이코노미 클래스, 버전관리·라이프사이클 기능) 데이터베이스: 직접 설치/DB 인스턴스/RDS 구성 방식 Enhanced the Architecture Tier 분리: 웹/WAS/DB 계층 분리. 운영 환경에서는 보안 인증심사 대응과 계층별 독립 확장을 위해 필수 오토 스케일링: 최소/최대/구동 인스턴스 수 설정, 수평 확장(스케일 아웃) 방식, 증설은 지표 임계치 초과 시 동작(즉각 반응 아님), 감축은 오래된 인스턴스부터(FIFO) CDN & Cache: 클라이언트 앞단(CDN, 글로벌 서비스 필수) vs WAS-DB 사이(인메모리 캐시) Journey to Cloud Native 6R 전략: Rehost(1일차 방식) → Replatform(RDS/이지 캐시 등, 2일차 실습) → Refactor(클라우드 네이티브: MSA/컨테이너/CI-CD/DevOps) MSA: 기능별 독립 배포/장애 격리 장점, 단 조직 구조도 함께 바뀌어야 함(실무에서 자주 실패하는 지점) 관리형 쿠버네티스(NKS/NCS): 어려운 컨트롤 플레인은 NHN이 관리, 고객은 노드+컨테이너만 관리. 노드 그룹 오토스케일링 내장 3일차 ※ NHN Cloud 홈페이지에는 실무에 활용할 수 있는 참고용 아키텍처 레퍼런스와 템플릿이 있다고 합니다.( https://www.nhncloud.com/kr/resource/reference-architecture ) Notification & Data Platform Notification: 푸시/SMS·LMS·MMS/RCS/이메일/카카오 비즈메시지(알림톡·브랜드메시지) 통합 채널 Data 서비스군: Log & Crash Search(로그/크래시 모니터링), Data Flow(ETL, 멀티클라우드 동시 저장 가능), Data Query(Trino 기반, Object Storage+DB 조인 쿼리) AI Services & ML NHN AI 서비스: 인프라(GPU/스토리지) → 플랫폼(AI EasyMaker, Deep Learning Instance) → 응용 서비스(Face Recognition, OCR, Text-to-Speech, Speech-to-Text) Security 책임 공유 모델: NHN이 인증 취득했다고 고객 서비스가 자동으로 인증받는 게 아님(고객도 별도 심사 필요) 서비스 분류: 취약점 점검(Server Security Check), 시스템 보안(Web Shell Detector 등), 보안 관리(Security Compliance, SIEM, Security Advisor), 접근 제어(Cloud Access/SSL VPN), 암호화(Secure Key Manager), 보안 관제(Basic/Security Monitoring), 네트워크 보안(DDoS Guard, WAF, Network Firewall/Hub-and-Spoke 구조) Infrastructure as Code IaC 개념: 반복 자동화·재사용·버전관리·휴먼에러 감소가 핵심 가치 Terraform: 선언적 코드, Plan(사전검토)→Apply(실제 생성) 절차가 핵심(실제로 비용 발생하는 리소스가 생성됨에 유의) Suggestion for Cloud Architect 실무 적용 이번 교육에서 배운 내용 중에서 직접적인 Hands-on 경험이 없었던 스토리지·데이터베이스·오토스케일 서비스와 아키텍처 스킬을 실무에 적용했습니다. 기존에는 웹/WAS 서버 로컬 디스크에 이미지를 저장하던 구조를, 교육에서 배운 대로 Object Storage로 분리해 여러 인스턴스가 동일한 원본 데이터를 공유하도록 개선했습니다. 데이터베이스는 단일 인스턴스로 운영하던 부분을 RDS 고가용성(HA) 구성으로 전환해, 장애 시 예비 마스터로 자동 전환되도록 하여 다운타임 리스크를 줄였습니다. 또한 트래픽이 몰리는 구간을 대비해 세션을 인스턴스에 두지 않고 Easy Cache에 저장하는 Stateless 구조로 바꿔, 오토스케일링 시 세션 유지 문제를 해결했습니다. 오토스케일 정책은 교육에서 강조한 대로 CPU 단일 지표가 아닌 CPU·메모리 두 가지 지표를 함께 사용하도록 설정했습니다. 정적 콘텐츠는 CDN을 적용해 사용자 체감 속도를 개선하고 원본 서버 부하를 줄였습니다. 이러한 개선을 통해 특정 서버 장애나 트래픽 급증 상황에서도 서비스 연속성을 유지할 수 있는 구조를 설계하고 컨설팅할 수 있는 기술을 배우게 되어서 3일 동안 시간일 투자할 만한 실용적이고 유익한 강의였습니다. 수강 소감 "NHN Cloud Training: Cloud Architecting" 교육은 클라우드 사용자에서 설계자 레벨로 업그레이드 되고 싶은 분들에게 상당히 좋은 기회라고 생각합니다. 조직 설계에서 시작해 네트워크·컴퓨트·스토리지·오토스케일·컨테이너·AI·보안·IaC까지, 아키텍트가 알아야 할 지도를 3일 만에 직접 Hands-on으로 테스트하고 스킬로 익힐 수 있었던 가치 있는 교육이었습니다. 무엇보다 이런 교육을 무료로 제공되는 점도 놀랐습니다. 그리고 동종업계에 계신 분들을 만날 수 있는 기회도 더불어 있었습니다. 자격증 공부는 별도로 시간과 노력이 필요하지만, 우선 교육에서 배운 것들을 실무에 바로 활용할 수 있을 것 같아 더 심화 교육도 있다고 해서 추후 시간내서 듣고 싶어졌습니다. ※ 출처 : https://www.nhncloud.com/kr/resource/edu-center/certification/essential 참고 사항(Q&A) Q1. 교육 비용 A1. 무료 교육이었고, 실습 할 때 발생하는 클라우드 서비스 이용료는 교육 Credit이 제공되어서 교육 가이드 내용대로만 수행한다면 추가 비용은 발생하지 않는 것 같습니다. Q2. 교육 방식(이론 중심인지, 실습 중심인지?) A2. Cloud Architecting Intermediate 레벨 교육은 챕터별 이론과 실습이 순차적으로 번갈아 진행되어서 이론에서 익힌 지식을 바로 이어서 체험하는 방식으로 진행되었습니다. 실습의 경우 먼저 "문제 있는 구조"(웹/WAS/DB 통합 서버)를 만들고, 2일차에 개선, 3일차에 DR·보조 리전까지 확장하는 흐름으로 3일간 진행되었습니다. Q3. 실습 난이도 A3. 교육 교재에 상세한 가이드가 있어 내용 그대로 이행하면 NHN Cloud 서비스를 아예 처음 접하시는 분들도 쉽게 따라 할 수 있었습니다. 다만, 가이드 내용을 꼼꼼히 읽지 않고 중간에 놓치거나 잘못 수행하면 바로 잡는데 애를 먹을 수 있습니다. 이 경우에는 실습을 도와주시는 기술지원 강사님께 도움을 요청하시면 됩니다. Q4. 교육 수강 전 준비사항 A4. Essentials 교육 수강자/자격증을 사전에 취득하거나 교육 목차별 NHN Cloud 서비스를 사전에 익혀둔다면 교육 내용과 실습을 진행하는데 훨씬 수월할 것 같습니다. Q5. 자격증 취득 지원 A5. 이론 교육에서 예시 문항을 미리 경험해 볼 수 있어 자격증 취득에 도움이 되고, 중간에 퀴즈 시험 우수자에게는 할인권을 제공해주는 것 같습니다.
velog
실시간 알림 기능을 구현한 뒤, 동시 접속 상황에서 어느 정도까지 안정적으로 동작하는지 확인하기 위해 부하테스트를 진행했습니다. 테스트를 진행하면서 Grafana로 CPU 사용률, 메모리 사용량, 응답 시간을 함께 확인했습니다. 시나리오를 여러 차례 반복하자 메모리 사용량은 계속 증가했고, CPU 사용률과 p99 응답 시간도 함께 올라갔습니다. 처음에는 단순히 부하가 많이 걸린 영향이라고 생각했습니다. 하지만 테스트가 끝난 뒤에도 메모리 사용량은 이전 수준으로 돌아오지 않았고, 같은 시나리오를 반복할수록 CPU와 p99가 이전보다 더 자주 튀었습니다. 또한 테스트 이후 애플리케이션 프로세스를 재시작하자 지표들이 다시 정상 수준으로 돌아왔습니다. 이러한 증상을 바탕으로 몇 가지 가능성을 먼저 확인했습니다. 1. 스레드 풀 고갈 의심 → 가능성 낮음 처음에는 동시 요청이 많아지면서 스레드 풀이 고갈되고, 대기 요청이 증가해 p99 응답 시간이 상승한 것이 아닐까 생각했습니다. 하지만 단순한 스레드 풀 고갈이라면 부하가 종료된 뒤 대기 중인 작업이 처리되면서 응답 시간도 다시 정상 수준으로 회복되는 흐름이 나타나야 합니다. 또, 테스트가 끝난 이후에도 메모리 사용량이 이전 수준으로 돌아오지 않았고, 테스트를 반복할수록 상태가 계속 악화됐습니다. 따라서 단순한 스레드 풀 고갈만으로는 설명하기 어려웠습니다. 2. 호스트 수준 문제 의심 → 가능성 낮음 다음으로 애플리케이션이 실행되는 인스턴스의 CPU, 메모리, 네트워크, 디스크 I/O 등의 자원 문제를 확인했습니다. Grafana에서 호스트 수준의 시스템 지표를 확인했지만 지속적인 CPU 포화나 메모리 부족, 네트워크 병목과 같은 문제는 보이지 않았습니다. 반면 애플리케이션 프로세스를 재시작하면 문제가 사라졌기 때문에, 호스트 자체보다는 애플리케이션 내부 문제일 가능성이 높다고 생각했습니다. 3. GC로 인한 Stop-the-World 문제 의심 Grafana에서는 당시 Heap 세부 지표를 충분히 수집하고 있지 않았습니다. 하지만 부하 테스트를 반복할수록 CPU와 p99가 함께 악화됐고, 메모리 사용량 역시 이전 수준으로 돌아오지 않았습니다. 애플리케이션 프로세스를 재시작하면 정상화되는 점을 보고, 애플리케이션 내부에 문제가 있음을 짐작했고, 특히 메모리가 계속 누적되는 상황에서 GC 가 더 자주 발생하거나 Stop-the-World 시간이 길어지면서 CPU 사용률과 p99 응답 시간에도 영향을 주는 것은 아닌지 의심했습니다. 다만 이 시점의 Grafana 지표만으로 GC 문제라고 확정할 수는 없었습니다. 그래서 GC 문제를 유발할 만한 코드가 있는지 확인하기 위해 AI 코드 리뷰도 함께 진행했습니다. SSE 연결 관리 코드가 의심됐다 리뷰 과정에서 실시간 알림에 사용하던 SSE 연결 관리 코드가 의심 지점으로 나왔습니다. SSE 연결을 생성하면 이후 알림 전송을 위해 SseEmitter 를 애플리케이션 메모리에 유지하고 있었습니다. private final Map<String, SseEmitter> emitters = new ConcurrentHashMap<>(); 문제는 SSE 연결이 종료된 이후에도 해당 연결과 관련된 상태가 메모리에서 정리되지 않고 남을 수 있다는 점이었습니다. 이미 사용이 끝난 연결 정보가 계속 참조된 상태로 유지되면 GC가 이를 회수할 수 없고, 연결이 반복될수록 관련 객체가 Heap에 계속 누적될 수 있습니다. SSE 연결 생성 ↓ 연결 상태를 애플리케이션 메모리에 유지 ↓ 클라이언트 연결 종료 ↓ 연결 상태가 정리되지 않고 남음 ↓ 객체에 대한 참조 유지 ↓ GC가 회수할 수 없음 하지만 코드만 보고 이것을 실제 원인이라고 단정할 수는 없었습니다. 그래서 로컬 환경에서 SSE 연결을 반복적으로 생성하고 종료하면서, 연결이 끝난 뒤에도 관련 상태가 실제로 남는지를 중심으로 재현 테스트를 진행했습니다. SSE 재접속으로 문제를 재현했다 로컬 환경에 애플리케이션 두 대를 띄우고, 일반 API 요청은 일정하게 유지한 채 SSE 재접속을 반복했습니다. 여기서 Heap 메모리는 애플리케이션당 320MiB 로 제한했습니다. 테스트에서는 실제 활성 SSE 연결 수와, 연결 종료 후에도 애플리케이션 내부에 남아 있는 연결 상태를 따로 확인했습니다. 정상적으로 정리된다면 연결이 종료된 뒤 두 값 모두 다시 감소해야 합니다. 하지만 재접속을 반복할수록 저장된 연결 상태는 계속 증가했고, 새로운 연결 생성을 중단해 활성 연결이 0 이 된 뒤에도 그대로 남아 있었습니다. 왼쪽 그래프를 보면 SSE 재접속을 중단한 뒤 활성 연결은 0 으로 돌아왔지만, 애플리케이션 내부에 저장된 연결 상태는 그대로 남아 있었습니다. 같은 시간대의 오른쪽 그래프에서는 Heap과 Old 영역의 사용량도 함께 증가하는 모습을 확인할 수 있었습니다. 여러 번의 GC를 거쳐 살아남은 객체는 Old 영역으로 승격됩니다. 따라서 연결은 이미 종료됐는데 Old 영역의 사용량이 계속 증가한다는 점에서, 종료된 연결과 관련된 객체가 제대로 정리되지 않고 계속 살아남고 있을 가능성을 의심했습니다. Full GC가 반복적으로 발생했다 다음으로 JVM 내부 상태를 더 자세히 확인하기 위해 VisualVM 을 사용했습니다. VisualVM에서 Heap 사용량과 GC activity 를 확인해보니, 테스트가 진행될수록 GC 이후에도 Heap 사용량이 이전 수준까지 내려오지 않고 점점 높아지는 모습을 확인할 수 있었습니다. 단순히 객체 생성량이 많아서 Heap 사용량이 증가한 것인지, 아니면 GC 이후에도 객체가 계속 살아남고 있는 것인지 확인할 필요가 있었습니다. 앞서 Grafana에서 Old 영역 사용량도 함께 증가하는 모습을 확인했기 때문에, GC가 발생하는 동안 어떤 Pause가 발생하고 있는지도 확인했습니다. 그래프를 보면 Young GC보다 Full GC가 발생한 구간에서 더 길게 정지한 것을 알 수 있습니다. 다만 이 그래프는 일정 구간에서 가장 길었던 GC 정지 시간을 보여주기 때문에, 선이 유지되는 시간을 하나의 GC 실행 시간으로 볼 수는 없습니다. 개별 Full GC에서 실제로 얼마나 오래 멈췄는지와 GC 전후 Heap 사용량은 GC 로그에서 확인했습니다. Pause Full (G1 Compaction Pause) 318M->260M(320M) 327.310ms Pause Full (G1 Compaction Pause) 318M->286M(320M) 291.926ms Pause Full (G1 Compaction Pause) 318M->291M(320M) 223.679ms 로그에서도 Full GC가 반복적으로 발생하고 있었고, GC 이후에도 Heap 사용량이 충분히 줄어들지 않는 모습을 확인했습니다. 이는 일부 객체가 계속 참조되고 있어 GC가 회수하지 못하고 있다는 것을 의미합니다. 그래서 다음으로는 부하가 끝난 뒤에도 이 상태가 계속 유지되는지 확인했습니다. 연결이 모두 종료된 뒤에도 Heap이 회수되지 않았다 SSE 재접속을 중단하고 활성 연결이 모두 종료될 때까지 기다렸습니다. 그 상태에서 Full GC를 여러 번 수행하면서 Heap 사용량이 얼마나 줄어드는지 확인했습니다. Pause Full (Diagnostic Command) 293M->269M(320M) 250.672ms Pause Full (Diagnostic Command) 269M->269M(320M) 237.300ms Pause Full (Diagnostic Command) 270M->269M(320M) 197.316ms Pause Full (Diagnostic Command) 270M->269M(320M) 197.966ms Pause Full (Diagnostic Command) 269M->269M(320M) 196.685ms 첫 번째 Full GC에서는 일부 메모리가 회수됐습니다. 하지만 이후 네 번의 Full GC에서는 Heap이 약 270MiB 수준에서 더 이상 내려가지 않았습니다. 두 애플리케이션 모두 비슷한 결과를 보였습니다. 애플리케이션 Full GC 이후 사용 Heap app1 약 270MiB app2 약 269MiB 이 시점에는 실제 SSE 활성 연결이 없는 상태였습니다. 그런데 Full GC를 여러 번 수행해도 Heap은 약 270MiB 수준을 유지했습니다. 즉, GC 자체는 실행되고 있었지만 일부 객체는 정리되지 않고 있음을 의미합니다. 따라서 단순한 GC 실행 여부의 문제가 아니라, 애플리케이션 어딘가에서 객체에 대한 참조가 계속 유지되고 있을 가능성이 있다고 생각했습니다. Heap Dump로 남아 있는 객체를 확인하다 Full GC 이후에도 Heap 사용량이 충분히 줄어들지 않았기 때문에 어떤 객체가 계속 살아남아 있는지 확인하기 위해 VisualVM으로 Heap Dump를 분석했습니다. 확인 결과, 종료된 SSE 연결과 관련된 객체들이 메모리에 그대로 남아 있었습니다. 특히 Heap Dump에서 확인한 SSE 연결 관련 객체 수가, 앞서 연결 종료 후에도 남아 있던 연결 상태 수와 거의 동일하게 나타났습니다. 즉, SSE 연결이 종료된 뒤에도 관련 상태가 애플리케이션 내부에 남아 있었고, 이 상태가 연결과 관련된 다른 객체들까지 계속 참조하고 있었습니다. 그 결과 해당 객체들은 더 이상 사용되지 않는데도 GC에 의해 회수되지 못한 채 Heap에 남아 있었습니다. 이를 통해 문제의 원인이 단순히 Heap 크기나 GC 설정 때문이 아니라, 종료된 SSE 연결과 관련된 상태가 계속 참조되면서 발생한 메모리 누수 라는 것을 확인했습니다. 연결 종료 시 참조도 함께 제거하다 원인은 SSE 연결이 종료된 뒤에도 관련 객체에 대한 참조가 메모리에 남아 있던 것이었습니다. 따라서 연결이 종료되는 시점에 저장해둔 SseEmitter 에 대한 참조도 함께 제거하도록 수정했습니다. emitterRepository.delete(userId); 핵심은 연결 자체가 종료되는 것뿐 아니라, 애플리케이션이 해당 연결에 대해 유지하고 있던 참조도 함께 정리하는 것이었습니다. 수정 후 같은 방식으로 SSE 재접속 테스트를 다시 진행했습니다. 이번에는 연결이 종료되자 애플리케이션 내부에 저장돼 있던 연결 상태도 함께 정리됐고, 활성 연결과 저장된 연결 상태 모두 0 으로 돌아왔습니다. Full GC 이후 Heap 사용량도 이전보다 크게 낮아졌습니다. 항목 app1 app2 활성 연결 0 0 저장된 연결 상태 0 0 Full GC 이후 Heap 약 57MiB 약 68MiB 수정 후에는 연결이 종료되면 관련 상태도 함께 정리됐고, Full GC 이후 Heap 사용량도 이전보다 크게 감소했습니다. 이를 통해 종료된 SSE 연결에 대한 참조가 계속 유지되던 것이 메모리 누수의 원인이었다는 것을 확인할 수 있었습니다. 마치며 이번 경험을 통해 여러 가능성을 의심한 뒤 재현 테스트와 JVM 분석 등을 통해 의심점을 좁혀가며 결론을 도출해내는 경험을 할 수 있었습니다. GC와 JVM 메모리 동작을 실제 문제와 연결해서 이해할 수 있었고, VisualVM과 Heap Dump를 활용해 원인을 추적하는 방법도 익혔습니다. GC가 개발자의 메모리 관리 부담을 줄여주지만, 그렇다고 메모리를 완전히 신경 쓰지 않아도 되는 것은 아니라는 점도 느꼈습니다. 무엇보다 문제를 재현하고 가설을 하나씩 좁혀가며 해결하는 과정을 직접 경험했다는 점이 의미 있었습니다.
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%
Score: 54.4Confidence: 49%