코딩

· Security
128.46 달러 = 한화 약 17만 8천원 과금 철회 승인 받았습니다....휴우....아래는 문제 원인과 해결방안을 자세히 풀어서 적어놓았습니다문제 발생어느날 잘 되던 오토스케일링이 잘 작동하지 않았다. 분명 인스턴스 최소 용량을 1로 설정해두었는데, 0 -> 1로 새롭게 생성하는데, 계속 문제가 생기는 것이었다.상단의 스크린샷에서 url 링크에 들어가보니,AWS측에서 액세스키의 비정상적인 접근이 발견되었다고 연락이 왔다. 이것을 확인하자마자 액세스 키를 비활성화한후, 삭제했다.그리고, 놀라운 상황을 맞이하게 되는데...바로 과.금.폭.탄이다..내가 쓰고 있는 서울 리전이외에, 버지니아 북부, 아일랜드, 시드니, 싱가폴 리전에서 인스턴스를 생성하여 가동했고,이것은 외부 침입자의 흔적이었다.거의 한화 ..
· ai
세상에는 다양한 방법론이 있다(1) 목표를 정하고 단거리 달리기(2) 목표를 정하고 장거리 달리기(3) 될것 같은지? 안될것 같은지? 지켜보면서 목표를 슬금슬금 정하기 CTO로서 난이도가 높은 기술을 구현할때는 (AI, 블록체인 등) 3번이다.왜 3번인가?개발은 노력만으로 되는게 아니라데이터 수집, ai 모델, 서버 구축 등 여러가지 도구 및 시스템이 갖춰져야 함도구와 시스템이 없다면 개발자의 노력이 있어도 기대 이하의 결과가 나올 수 있음3번적 사고를 기르려면1. 어떻게 만들건데?이 질문을 달고 살아야 한다2. 장기목표를 신중히 정해야 한다= 장기목표를 나중에 정해야 한다장기 목표를 냅다 지르는게 아니라돌다리 두드려보듯 하나씩 두드려보면서 단기목표1, 단기목표2, 단기목표3이런식으로 세우면서오히려 기획..
· ai
AI의 발전은 세 차례에 걸쳐 크게 변화해왔습니다. 1차 AI 붐에서는 규칙 기반 시스템이 주목받으며 AI의 기초가 다져졌습니다. 이후 2차 AI 붐에서는 머신러닝의 등장과 역전파 알고리즘 덕분에 신경망 학습이 가능해지면서 AI 연구가 다시 활기를 띠었습니다. 3차 AI 붐에 이르러서는 딥러닝과 생성형 AI가 발전하여 다양한 산업에서 혁신적인 성과를 내고 있습니다.위의 사진을 보면, 머신러닝이 등장하고나서 순차적으로 딥러닝이 등장할 것 같다고 생각할 수 있지만, 실제로는 동시에 발전해왔습니다.  머신러닝과 딥러닝의 상호발전과 계층구조예를들어,1980년대 역전파 알고리즘의 도입은 머신러닝의 중요한 발전이었습니다.이를 통해 비선형 문제를 해결할 수 있게 되었고, 딥러닝은 더 깊은 신경망으로 복잡한 패턴을 인..
· php
더보기 ubuntu@ip-172-31-46-103:/var/www/html$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer..
· Android
우리가 php server에서 fcm server로 알림 데이터를 보낼때는, php server에서 server key를 첨부해서 데이터를 보내줘야 한다. server key는 모두가 알듯이 파이어베이스 콘솔에서 발급받은 후 확인할 수 있다 다음 링크는 서버키 발급이 완료된 후, 확인할 수 있는 링크이다. https://console.firebase.google.com/project/tiki-taka-22f76/settings/cloudmessaging 로그인 - Google 계정 이메일 또는 휴대전화 accounts.google.com 그런데, 이 링크에서 서버키를 확인할 수 없는 경우가 있다.... 서버키를 파일로만 가지고 있고, 홈페이지에 따로 서버키가 안뜨는 경우이다. 해결방법 Cloud Mess..
· Android
public class FirebaseCloudMessageService { // 알림 메시지와 데이터 페이로드 포함 public static void sendMessage(String registrationToken, String content, int messageId, int roomId, String name, String userProfile) throws Exception { // 데이터 메세지 // 포그라운드, 백그라운드에서는 직접 일관되게 처리 Message message = Message.builder() // 메시지 구성을 시작할 수 있는 Builder 객체가 반환 .putData("title", name) // 알림 제목을 데이터 페이로드에 추가 .putData("userProfile..
· Android
fcm을 사용하려고 여러 세팅을 하던 도중에, 새로운 토큰은 발급 받았으나 새 토큰이 불러와지지 않는 문제가 발생했다. public class MyFirebaseMessagingService extends FirebaseMessagingService { String CHANNEL_ID; String CHANNEL_NAME; int userId; ChatApiService service; private static final String TAG = "FCM Service"; // 서비스가 생성될 때 호출되며, 여기서 FCM 토큰을 요청하는 것이 좋습니다. @Override public void onCreate() { super.onCreate(); userId = SharedPreferencesHelper..
· Clean Code
다음은 로버트 C. 마틴 Clean Code(클린 코드)를 읽고, 정리한 내용입니다. 적절한 행 길이를 유지하라 500줄을 넘어가지 않고 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다는 사실이다. 반드시 지킬 엄격한 규칙은 아니지만, 바람직한 규칙으로 삼았으면 좋겠다. 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. 수직거리 서로 밀접한 개념은 세로로 가까이 둬야 한다. 물론 두 개념이 서로 다른 파일에 속한다면 규칙이 통하지 않는다. 하지만, 타당한 근거가 없다면, 서로 밀접한 개념은 한 파일에 속해야 마땅하다. 이게 바로 protected 변수를 피해야 하는 이유 중 하나다. (protected 변수 : 자식 클래스가 부모 클래스의 멤버(변수나 메서드)에 접근하거나 수정해야 할 ..
지은(becky)
'분류 전체보기' 카테고리의 글 목록