전체 글

· PHP/Setting
개요 JetBrains의 IDE 중 PHPStorm으로 외부에 있는 서버를 SSH로 바로 연결해서 수정해 봅시다. 1. 빈 프로젝트 생성 프로젝트 하나당 하나의 Host 정보를 담을 수 있습니다. .idea의 webServers.xml에서 호스트 정보를 가집니다. 2. Remote 연결 Remote 연결 창을 엽니다 Header -> Tools-> Deployment -> Browse Remote Host 옆에 아래와 같은 창이 나오는데 ... 버튼을 눌러줍시다. 이름을 입력해 주고 OK를 누르고 다시 ... 버튼을 눌러줍니다. 아래서 + 버튼을 눌러주고 이제 환경에 맞게 연결 정보를 넣어주면 됩니다. 정보 입력 후 OK를 누르면 완료됩니다. Test Connection으로 잘 연결되는지 확인 가능 기본..
1. Go가 뭐라고 생각해요? Go는 요즘 같은 시대에 딱 적합한 언어라고 생각합니다 빠르게 컴파일링 가능하고, 복잡함을 최소화했으며 문법도 간단하고 경량 스레드를 가진 데다가 C와 라이브러리와 네이티브 시스템 호출 등 상호운용성도 챙겼기에 매우 좋은 언어라 생각합니다. 2. Go 프로그램의 패키지를 설명해 주세요? 패키지란 비슷한 기능을 가진 함수, 타입, 변수들이 집합으로 패키지는 코드의 구조를 조직화하고 네임스페이스를 제공하는 역할을 합니다. GO는 패키지로 구성되며 main 패키지에서 실행됩니다. go mod init : 모듈을 초기화합니다. go get : 외부 모를 가져옵니다. go build : 코드를 빌드합니다 3. 사용자 지정 패키지란? 프로젝트 디렉터리 아래에 라이브러리 파일이 있는 디..
· Java
1. JVM이 뭔가요? JVM(Java Virtual Machine)은 Java Runtime Environment(JRE)의 일부로서 Java 바이트코드를 실행하기 위한 런타임 환경을 제공합니다. 하드웨어 및 운영 체제의 독립성을 책임지는 Java 기술의 구성 요소로, Java의 "한 번 작성하면 어디서나 실행"이라는 핵심 기능을 가능하게 합니다. JVM은 다음과 같은 주요 작업을 수행함으로써 작동합니다: 코드 로드: 컴파일된 바이트코드를 메모리에 로드 코드 검증: 로드된 Java 바이트코드의 정확성을 보장 코드 실행: JVM은 기반 하드웨어에 따라 바이트코드를 기계 언어로 해석하여 실행 2. JDK, JRE 및 JVM의 차이점을 설명해 보세요? JVM(Java Virtual Machine): 앞서 언..
· MySQL
쿼리를 만들다 보면 데이터가 들어 올 때 유니크 값이 중복이면 나머지 컬럼을 업데이트하고 싶은 경우가 있다 물론 일일이 업데이트해도 되지만 데이터 여러 개를 하고 싶을 때 유용한 옵션이 있다 그건 바로 아래 insert의 옵션이다 ON DUPLICATE KEY UPDATE 간단하게 예시를 들자면 다음과 같은 DDL이 있다고 치자 CREATE TABLE books ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) UNIQUE, description TEXT, author VARCHAR(255) ); 그리고 여기에 데이터를 넣자 여기도 해당 옵션을 넣었지만 바뀐 건 없고 5개의 칼럼이 추가된다 INSERT INTO books (name, description,..
· Go Lang
🔍 문제 톺아보기 https://www.acmicpc.net/problem/1019 1,000,000,000보다 작거나 같은 N이 주어질 때 1 ~ N까지의 페이지 번호에서 0~9가 몇 번 나오는지 구해보자 백준에서는 1초당 1억을 넘어가면 시간초과를 하게 됩니다 하지만 문제는 10억이기에 당연히 반복문으로 모든 경우의 수를 체크하는 방법은 시간초과가 발생합니다. 🔍규칙 찾기 시간초과가 발생함은 곧 규칙이 있고 이거를 찾으면 해결할 수 있다는 의미죠 저 10억 자리의 수를 무언가 하려면 수로 접근하는 게 아닌 문자열로 접근해야 합니다 다가가기 1 일단 1부터 99는 구할 수 있을까? 💡어디 보자 십의 자리만 두고 생각하면 1~9가 10번 반복되고 (각 십의 자릿수는 일자리가 9까지 돌기 때문에) 일의 자..
개요 웹 서비스를 한다면 크롤링을 알 수밖에 없을 것입니다. 자체적으로 API를 통해 공개하는 데이터 이외에도 아무 데이터나 긁어가 버리니 귀찮은 존재죠. Captch나 자체적으로 로그를 쌓아서 이를 체크해서 막는 방법 등 각자의 노하우로 여러 가지가 있을 겁니다. 물론 막는 법을 잘 아는 게 중요하지만 공격 쪽 입장에서의 생각도 알면 더 좋겠다는 생각으로 정리해 봤습니다. 번외로 요즘은 합법적으로 토렌트처럼 분산 요청을 통해 Captch도 뚫어버리는 서비스도 있는데 참 신기합니다 1. User Agent 가장 쉽고 편하게 해 볼 수 있는 방법입니다. Python + Selenium 기준으로 아래처럼 헤더라 User Agent를 추가하면 됩니다. headers = { "Accept": "text/html..
아마존 웹 사이트는 404가 발생할 경우 강아지를 보여줍니다 404가 발생해 화가 난 사용자를 귀여움으로 달래준다는 의도가 재밌네요 총 200장이지만 포즈가 다르하여 중복되는 강아지들도 꽤 보이네요 HTML 삽입 미리보기할 수 없는 소스
개요 https://www.acmicpc.net/problem/1007 1007번: 벡터 매칭 평면 상에 N개의 점이 찍혀있고, 그 점을 집합 P라고 하자. 집합 P의 벡터 매칭은 벡터의 집합인데, 모든 벡터는 집합 P의 한 점에서 시작해서, 또 다른 점에서 끝나는 벡터의 집합이다. 또, P에 속 www.acmicpc.net 문제는 다음과 같습니다. 평면에 점들의 집합인 P가 있고 여기에는 N개의 좌표가 있다, N은 짝수이다. 집합 P에서 N개의 벡터를 만들 수 있다, 즉 벡터는 N/2개이다. P에서 나오는 벡터들의 합 중 최솟값을 출력해라. 이 문제를 풀려면 우선 🔍벡터의 합은 어떻게 구하는가? 벡터의 값은 끝점 - 시작점으로 구할 수 있습니다. 벡터 v1는 x1, y2에서 x2, y2로 향한다 v1 ..
개요 문제 https://www.acmicpc.net/problem/1005 📃 해당 문제는 이전에 풀었던 위상 정렬 문제인 2252번을 이용하시면 쉽게 이해할 수 있습니다. https://seung.tistory.com/entry/GoLang-%EB%B0%B1%EC%A4%80-2252%EB%B2%88-%EC%A4%84-%EC%84%B8%EC%9A%B0%EA%B8%B0%EC%9C%84%EC%83%81%EC%A0%80%EB%A0%AC [GoLang] 백준 2252번, 줄 세우기(위상 정렬) 개요 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음..
개요 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 처음 이 문제를 보고 골치가 아플 것 같았는데 유심히 보니 정답률이 높아서 계속 문제를 읽었더니 이 문제는 낚시가 있어서 이 부분만 안 속으면 매우 쉽습니다. 문제가 아래처럼 주어진다면 뭔가 아래처럼원 사이를 구불구불 지나가야 제대로 푼 거 같은 기분이 들지만 사실 아래처럼 간단하게 뒤로 돌아간다는 경우의 수가 항상 존재합니다! 즉 문제에서 말한 행성의 경계에 진입/이탈하는 경..
DSeung
Dev log