전체 글
-
[쉘 스크립트] 배치 파일 만들어서 크론 실행하기
Web Programming 2026. 7. 16. 16:48운영 서버에 반영하는 예시로 작성하였다.먼저 vi /home/test/cleanup.sh 로 편집기 실행 후#!/bin/bashecho "정리 작업을 시작합니다: $(date)"# 1. Tomcat 로그 삭제 (한 달 전 기준: 30일)LOG_DIR="/home/test/tomcat8/logs"if [ -d "$LOG_DIR" ]; then # 대상 파일들을 찾아 rm -f로 강제 삭제 find "$LOG_DIR" -type f \( -name "catalina.*.log" -o -name "localhost.*.log" \) -mtime +30 | xargs rm -f find "$LOG_DIR" -type f -name "localhost_access_log.*.txt" -mtime..
-
cdn 방식을 무조건 지양해야되는 이유!!
Web Programming 2026. 7. 14. 15:01새로운 사이트 유지보수 업무를 맡게 되어 우선 로직을 살펴보고자 jsp 파일을 열었는데짜잔!!! cdn 이 날 반겨준다... 하... -_-;; 보안 어케 통과됐노;;진짜 1프로의 가능성이 없긴 하겠지만 절대 절대 네버 cdn으로 쓰면 아니된다....!1. HTTP 연결 시: 데이터 변조 및 감지 (중간자 공격)만약 외부 CDN 주소를 호출할 때 http://.../vue.js 처럼 HTTP로 연결하면 다음과 같은 심각한 보안 문제가 발생합니다.스니핑(감지): 사용자와 CDN 서버 사이의 네트워크 구간에서 해커가 "이 사람이 지금 어떤 js 파일을 불러 쓰는지" 평문으로 다 들여다볼 수 있습니다.인젝션(변조): 가장 위험한 부분입니다. 해커가 중간에서 vue.js 파일을 가로채서 그 안에 악성 코..
-
[Spring] 스케줄러 fixedDelay 와 cron 장단점
Web Programming 2026. 7. 9. 13:11스프링(Spring) 프레임워크 등에서 배치나 반복 작업을 처리할 때 자주 사용하는 @Scheduled 속성 중, cron과 fixedDelay는 작동 방식과 목적에서 큰 차이가 있는데 핵심적인 차이는 "이전 작업이 끝나는 시점을 고려하느냐"와 "지정된 절대적 시각에 실행하느냐"에 따라 차이가 있다. 정리하자면 아래와 같다.1. fixedDelay (이전 작업 종료 시점 기준)fixedDelay는 이전 작업이 완료된 시점부터 설정한 시간이 지난 후 다음 작업을 실행.특징: 작업과 작업 사이에 항상 일정 시간의 '휴식기(Delay)'를 보장해준다.장점: 앞선 작업이 예상보다 오래 걸리더라도, 작업이 겹쳐서 실행(동시성 문제)되는 일을 절대적으로 방지할 수 있다.단점: 매번 실행되는 정확한 시각을 예측하..
-
안드로이드 스튜디오가 gradle 채택한 이유
App Programming 2026. 7. 7. 14:30구글이 2013년 안드로이드 스튜디오(Android Studio)를 공식 발표하면서 기존의 빌드 시스템(Ant, Eclipse ADT)을 버리고 Gradle을 전격 채택한 이유는 모바일 앱 개발 환경이 고도화되면서 발생한 한계를 극복하기 위해서이다.1. 멀티 프로젝트 및 다양한 빌드 변형(Build Variants) 지원안드로이드 개발에서는 하나의 소스 코드를 기반으로 여러 버전의 앱(무료/유료 버전, 개발/운영 서버 환경 분리, 기기별 맞춤형 빌드 등)을 만들어야 하는 경우가 많습니다.기존 시스템(Ant, Maven): 버전마다 프로젝트를 통째로 복사하거나, 빌드 스크립트가 극도로 복잡해졌습니다.Gradle 채택 후: Build Flavors와 Build Types라는 개념을 통해, 코드 한 줄로 ..
-
[IOS Safari] 아이폰 window.open 은 사파리 에러인가??
App Programming 2026. 7. 7. 13:50아이폰에서 window.open 기능이 안되다는 연락을 받았다.하.... 역시 또 Safari 인가.... 애플 이놈들...jsp 화면이라서 console이 어떻게 찍히는지 보려고 테스트 아이폰 기기로 mac 에 safari 겨서 개발자 모드로 들어가서 봤더니 에러가 안뜨네??그래서 뭐지 하다고 찾아보다가 safari 에서는 클릭 이벤트시더보기"Safari는 AJAX가 끝난 시점에는 이미 사용자의 클릭 이벤트가 끝난 것으로 판단해서 window.open()을 팝업으로 간주하고 차단하는 경우가 많습니다."라는 말이 아주 많았다.그래서 빈 popup 을 만들어서 거기다가 ajax 호출 후 팝업 url 을 셋팅하라는 말들이 있던데 그러면 빈 화면 popup 이 뜨고 호출 후 내용을 채우니까아무리 봐도 사용..
-
[안드로이드] 신규 프로젝트 gitLab에 올리기
App Programming 2026. 7. 3. 16:05안드로이드 프로젝트를 만들었으니 이제 GitLab 이랑 연동해보자GitLab 에 들어가서 상단 New project 클릭Create blank project 를 선택해준다.다른 프로젝트를 git clone 한 것도 아니고 신규 프로젝트니까 위의 설정대로 하면 git에서는 끝!!그럼 안드로이드 스튜디오 Terminal 에서 아래와 같이 순서대로 명령어를 쳐준다.# 1. 현재 프로젝트 폴더를 Git 저장소로 초기화git init# 2. 프로젝트의 모든 파일을 Git 스테이징 영역에 추가git add .# 3. 첫 번째 커밋 생성git commit -m "First Commit (Android Project)"# 4. 내 로컬 프로젝트와 아까 복사한 GitLab 주소 연결# (URL 부분에 본인의 GitLa..
-
[안드로이드] 구글 admob 테스트 광고 연동
App Programming 2026. 6. 30. 15:49개발중인 안드로이드 앱에 구글 admob 테스트 광고 연동해보기 !!먼저 신규 프로젝트 생성 !!처음에 Empth Activity 로 프로젝트 생성 후 구글 광고 연동해보았는데구글링 등 이런저런 자료를 찾아봐도 Empth Activity 는 activity_main.xml 을 쓰는 프로젝트가아니라서 뭘 어떻게 연동해도 잘되지가 않아서 Empth Views Activity 로 프로젝트를 생성했다.그럼 res / layout 밑에 activity_main.xml 이 있음 !!아차! 구글 광고를 연동하기 위해서는 admob 에서 광고 신청을 해야하는 게 맞으나지금은 개발단계이기 때문에 테스트 광고로 연동을 목표로 글을 작성하였다.admob 실제 광고하기 위해서 테스트를 해주는게 좋으니 참고해주시길 바랍니다..
-
[안드로이드 개발자] 휴대폰 셋팅 USB 연결
App Programming 2026. 6. 29. 17:37안드로이드 스튜디오 설치 후 내 안드로이드 폰 연동하여 개발앱 화면에 띄우기 !!삼성 갤럭시 (One UI) 활성화 방법1. 스마트폰에서 설정 앱을 엽니다.2. 맨 아래로 내려가 휴대전화 정보를 선택합니다.3. 소프트웨어 정보를 누릅니다.4. 빌드 번호라는 항목을 연속으로 7번 빠르게 누릅니다.주의: 누르다 보면 "개발자 단계 완료 X단계 전입니다"라는 안내가 뜨며, 마지막에는 잠금 화면 패턴이나 비밀번호를 입력하라는 창이 나옵니다.5.비밀번호를 입력하면 "개발자 모드를 켰습니다."라는 토스트 메시지가 뜹니다.💡 확인 방법: 다시 설정 앱의 첫 화면으로 돌아가서 맨 아래로 내려보면, 기존에 없던 [개발자 옵션] 메뉴가 추가된 것을 확인할 수 있습니다.개발자 옵션 탭이 생기면 클릭 후 '사용중' 상태를..