본문 바로가기
반응형

전체 글85

[PHP] 문자열에서 부분 문자열 위치 찾기 - strpos 함수 ※ PHP 4 이상에서 지원하는 함수입니다. 'strpos' 함수는 문자열 내에서 다른 문자열의 첫 번째 발생 위치를 찾는 함수입니다. 함수의 구조 기본적인 구조는 아래와 같습니다: strpos( $haystack, $needle, $offset ); strpos('Hello, World!', 'World'); 입력값 haystack : 탐색할 원래의 문자열입니다. (필수 값) needle : 찾고자 하는 부분 문자열입니다. (필수 값) offset : 탐색을 시작할 위치입니다. (선택 값, 기본값은 0) 응용하기 'Hello, World!' 문자열에서 'World'의 위치 찾기 echo strpos('Hello, World!', 'World'); 입력값 : 'Hello, World!' 결과값 : 7 반.. 2023. 6. 15.
[PHP] 문자열 길이 측정하기 - strlen 함수 ※ PHP 4 이상에서 지원하는 함수입니다. 'strlen' 함수는 문자열의 길이를 반환하는 함수입니다. 함수의 구조 기본적인 구조는 아래와 같습니다: strlen( $string ); strlen('Hello, World!'); 입력값 string : 길이를 측정할 문자열입니다. (필수 값) 응용하기 'Hello, World!' 문자열의 길이 측정하기 echo strlen('Hello, World!'); 입력값 : 'Hello, World!' 결과값 : 13 한글 문자열 "안녕하세요"의 길이 측정하기 echo strlen('안녕하세요'); 입력값 : '안녕하세요' 결과값 : 15 빈 문자열의 길이 측정하기 echo strlen(''); 입력값 : '' 결과값 : 0 숫자를 문자열로 취급하여 길이 측정하.. 2023. 6. 15.
m1 mac에 x86_64 Homebrew 설치하기 문제 내용 m1 맥북에 Homebrew를 통해 특정 패키지를 설치하려고 시도하였다. brew install ... 하지만 아래와 같은 오류가 발생하였다. Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)! To rerun under ARM use: arch -arm64 brew install ... To install under x86_64, install Homebrew into /usr/local. 이 문제를 해결해보자. 우선 원인은 간단하다. M1이 출시한지 시간이 좀 되었지만, 아직 Intel 프로세서만 지원하는 앱들이 많다. 위 내용처럼, x86_64 아키텍처에 의존하는 패키지를 설치하려고 하면 위와 같은 오류.. 2023. 2. 25.
aws 로드밸런서 리스너 설정하기. 서비스 점검, 특정 디렉토리 및 파일 접근 차단 기능 EC2와 로드밸런서를 사용하는 경우 로드밸런서의 리스너 기능을 통해, 서비스에 특정 접근을 마음대로 컨트롤할 수 있다. 아래 요구사항대로 예시를 봐보자. 요구사항 1. 서비스 전체가 점검이 필요하다. 모든 API와 웹 페이지들에 점검중임을 표시하는 메시지, 혹은 화면을 띄워주어야 한다. 요구사항 2. 특정 디렉토리, 파일을 사용자가 접근하지 못하게 설정해야 한다. 우선 로드밸런서의 리스너 기능은 아래 화면에서 접근 가능하다 EC2 -> 로드밸런싱 -> 로드밸런서 -> 설정할 특정 로드밸런서 클릭 후, 하단 리스너 버튼 클릭 -> HTTPS : 443 의 규칙 보기/편집 버튼 클릭 (https를 사용중이지 않고 http만 사용중이라면 443이 아닌 80포트) 들어올 경우 아래와 같은 화면을 확인할 수 있고.. 2023. 1. 7.
DynamoDB로 panaging 기능을 구현해보자. 만들면서 느낀 결론부터 적어보겠다. 페이지네이션(pagenation) 기능이 필요하다면, 그냥 관계형 db를 쓰자...ㅎ DDB로 페이지네이션을 구현한다는 것 자체가 이미 오류사항이다. 아직 설계 전이고, 페이징 기능이 메인으로 필요하다면 RDS를 사용하자. 이 글에선 특정 n번째 페이지로 페이징 하는 방식이 아닌, 무한 스크롤 방식의 페이징을 구현하는 내용을 다루고 있으며. 이런 페이징 방식을 구현해야 하는 사람들에게 나의 케이스가 참고가 될 수 있을까 하여, 내가 사용했던 방법을 간단하게 공유해볼까 한다. 빠르고 간단하게 내용을 다뤄보자. 들어가기 앞서 우선 DynamoDB엔 페이지네이션 기능을 공식적으로 지원하지 않는다. 공식적으로 지원해주는 기능으론 단순 갯수를 제한걸어, 데이터의 호출 개수를 설.. 2022. 12. 26.
Postman을 통하여 API 속도 테스트를 해보자. * 이 게시물에선 Postman의 기능을 통하여, 다수의 API 응답 속도를 일괄 테스트해보는 방법을 설명하고 있습니다. 작업 배경 서버 쪽 API들의 성능 개선 작업이 이루어졌습니다. 하지만, 실제 표본 데이터 없이. 말만으로 무작정 성능 개선이 이루어졌다고 할 수 없는 법. API의 응답 속도가 얼마나 빨라졌는지 정확한 데이터를 뽑으려고 합니다. 사용 프로그램과 기능 Postman의 collection 기능을 사용해서 진행해보려고 합니다. 방법 우선, Postman 좌측 상단 New -> Collection을 통해 새 컬렉션을 만들어줍니다. 이 생성된 콜렉션 아래에 테스트에 필요한 API들을 전부 모아줍니다. 생성된 콜렉션 우클릭 -> Add request 버튼이나, 다른 콜렉션에서 복사해오면 됩니다.. 2022. 9. 21.
intellij에서 edutools 플러그인이 작동하지 않을 때 intellij에서 edutools 플러그인이 작동하지 않을 때 에디터가 저장이 마저 안되고 강제 종료가 되거나 했을 때, 데이터가 꼬여 'Solve in IDE' 버튼을 눌러도 인텔리제이가 작동하지 않는다. 이럴경우 Preferences > Tools > Education > JetBrains Academy 로그인정보를 로그아웃 후 재 로그인을 통해 갱신시켜주자. 이후 에디터에서 Course 프로젝트를 재구성하게되고, 이 방법으로 왠만하면 해결된다. 2022. 9. 20.
[java] nextInt() 사용 직후 nextLine() 사용하면 생기는 오류 해결 방법 문제 사항. nextInt() 사용 직후 nextLine() 를 사용하면 사용자 입력과 무관하게 nextLine() 이 빈값을 받아오게 됨. 원인 Scanner.nextInt()가 사용자 입력의 마지막 개행을 처리해주지 않음. 이 처리되지 않은 개행 문자가 다음에 사용되는 Scanner.nextLine()에서 입력되기에, nextLine()이 사용자 입력과 무관하게 빈 값을 받아오게 됨. 해결 방법 값을 받을 때 Scanner.nextInt()이 아닌 Scanner.nextLine()로 받아오고, 입력 받아온 값을 Integer.parseInt 를 사용해서 형변환시키기. int value = Integer.parseInt(scanner.nextLine()); 혹은 그냥... nextInt() 직후에 의미.. 2022. 6. 26.
오류: 에이전트에 예외사항이 발생했습니다. : java.rmi.server.ExportException: Port already in use: 8080; nested exception is: java.net.BindException: Address already in use (Bind failed) [톰캣] 실행 시도시 아래와 같은 메시지가 뜬다. 오류: 에이전트에 예외사항이 발생했습니다. : java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use (Bind failed) 원인. 직전 작업하던 내용이 오류로 종료되며 톰캣에서 돌리던 서버가 정상종료되지 않아 계속 실행되고 있기에 발생함. 해결 방법. 터미널을 통해 해당 포트를 강제종료 시켜버리면 된다. 예시. 위의 경우엔 1099포트가 사용중이라 한다. 아래 명령어를 입력해 실행중인 포트의 PID를 알아낸다. sudo lsof -i:1099 (패스워드 인증 필요) PID 번호를 .. 2022. 4. 25.
하나 이상의 리스너들이 시작하지 못했습니다. 상세 내역은 적절한 컨테이너 로그 파일에서 찾을 수 있습니다. - 에러 로그 안뜨는 문제 해결 톰캣 / spring 프로젝트를 빌드 하던 도중 아래와 같은 오류 메시지가 나왔다. 하나 이상의 리스너들이 시작하지 못했습니다. 상세 내역은 적절한 컨테이너 로그 파일에서 찾을 수 있습니다. 하지만 콘솔에서 무엇에 대한 오류인지를 자세히 알려주지 않았다. 이럴 경우 아래와 같은 방법으로 해결이 가능하다. 프로젝트의 WEB-INF 디렉토리 안에 classes 폴더를 새로 생성하고. 안에 logging.properties 파일을 생성한 후. (/WEB-INF/classes/logging.properties) 안에 아래와 같은 내용을 넣는다. org.apache.catalina.core.ContainerBase.[Catalina].level=INFO org.apache.catalina.core.Containe.. 2022. 4. 25.
맥 점 세 개 찍으면 가운데 점 입력되는 기능 고치기 맥 사용 중. 점( . )을 연속으로 세번 입력할 경우 가운데 점 ( ・ ) 으로 입력됩니다. 아래와 같이 점 3개를 쓰면 자동으로 가운데 점으로 바뀌어 버립니다. 이 자동 변경 기능을 간단하게 꺼버립시다. 환경설정 -> 키보드 -> 텍스트 입력 -> 입력소스 -> 편집 으로 들어가셔서 "스마트 인용 부호 및 대시 사용" 을 꺼버리면 됩니다. *구버전 os의 경우, 시스템 환경설정 -> 키보드 - 단축키로 들어가 "스마트 인용 부호 및 대시 사용" 을 꺼버리면 됩니다. 만약 기능을 끈 후 가운데 점을 사용하고 싶다면 fn키를 클릭 후 중간 구분점/ 별 부분에서 3번째 항목을 누르면 됩니다. (↓) 2021. 9. 1.
[자료구조] 큐(queues)와 스택(Stack)이란? (3분 요약) 큐와 스택에 대해 알아보고 계신 당신께... 장담컨데 이 것들 젼나 쉽습니다 이 게시물 하나로 3분 안에 끝내드릴께요 첫 이해를 위한 겉핥기 이 둘은 우선 복잡한 게 아닌, 우리 주변에서도 정말 쉽게 찾아볼 수 있는 그저 간단한 규칙 입니디. 예시를 찾아보며 최대한 간단하게 설명해볼께요 스택(STACK) 우리 주변에서 스택의 개념을 사용하고 있는 것을 정말 쉽게 찾아볼 수 있는데요. 크롬이나 삼성 인터넷 같은 인터넷 브라우저에서 찾아볼 수 있습니다. 분명 여러분도 많이 쓰는 기능일꺼에요. 스택이란 규칙에 대해 정말 간단하게 설명을 해볼께요 최근 제가 택배를 많이 시켜서 문득 생각이 났는데, 이 택배에도 스택의 구조를 찾아볼 수 있습니다. 택배로 한 번 예시를 들어볼께요. 집 현관문 앞에 택배 상자가 3개.. 2021. 8. 27.
반응형