문제 https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 첫 시도에서는 문자열을 공백 기준으로 split 한 다음, 나뉘어진 요소(단어) 내부의 짝/홀수 인덱스를 판단해 대소문자로 바꾸려고 하였다. 공백을 기준으로 split 하였으니, 각 요소(단어)의 변환이 끝나면 공백 문자를 answer에 하나씩 추가해주었다. split한 배열과, 그 배열의 요소(단어)를 각각 반복하여 2중 for문을 사용해 구현했다. 테스트 케이스에서는 문제가 되..
전체 글
Lv.7 (3.5-year)System.currentTimeMillis() 시작하는 시점과 끝나는 시점에 각각 해당 함수를 써서 시간을 받아오고, 두 시간간의 차이를 계산하면 실행 시간을 구할 수 있습니다. long beforeTime = System.currentTimeMillis(); // 코드 실행 전에 시간 받아오기 // 측정하려는 코드 long afterTime = System.currentTimeMillis(); // 코드 실행 후에 시간 받아오기 long diffTime = afterTime - beforeTime; // 두 개의 실행 시간 System.out.println("실행 시간(ms): " + diffTime); Instance Instance는 자바 8부터 java.time에 패키지에 추가된 클래스로, ep..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12919 나의 풀이 for문을 이용해 배열 선형 탐색 배열의 원소가 String이므로 equals 매소드 사용 1. 나의 코드 class Solution { public String solution(String[] seoul) { // 배열의 element를 찾는 문제 // for문을 이용한 선형 탐색 for (int i=0; i 값을 찾아 값의 인덱스를 얻음 ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12931 나의 풀이 각 자릿수는 10씩 나눈 나머지로 구할 수 있다. %와 /연산자를 사용해 각 자릿수를 누적하고 나머지를 구한다. 나머지가 0보다 작아질 때까지 (일의 자리까지 구할 때까지) 이 과정을 반복한다. 1. 나의 코드 import java.util.*; public class Solution { public int solution(int n) { int answer = 0; while(n>0) { answer += n % 10; n /= 10; } return answer; } } 입력된 숫자의 자릿수에 비례하여 반복의 횟수가 많아진다. 자바에서 int형의 최대값은 `2,147,48..
.gitignore 파일 .gitignore 파일은 Git 버전 관리 시스템에서 추적하지 않을 파일이나 폴더를 지정하는데 사용됩니다. 이 파일은 프로젝트의 루트 디렉토리에 위치하며, 텍스트 파일 형식으로작성됩니다. .gitignore 파일을 사용하면 민감한 정보, 개발 중 생성되는 임시 파일, 빌드 출력물 등 Git 저장소에 포함시키고 싶지 않은 파일이나 디렉토리를 지정할 수 있습니다. Git에서 이미 추적한 파일은 영향을 받지 않습니다. 패턴 .gitignore 파일은 패턴을 지정하여 무시할 파일을 결정합니다. 단일 파일 지정 특정 파일을 직접 명시하여 무시할 수 있습니다. 예를 들어, config.json 이라는 파일을 무시하고 싶다면, .gitignore 파일에 config.json 을 추가합니다...
git init 현재 디렉토리를 깃을 사용할 수 있도록 초기화 git status 파일 상태 확인 (untracked, unmodified, modified, staged) git add 파일/폴더명 깃 스테이징 git commit -m "커밋 메시지" 커밋 git log 깃 로그 확인 git commit -am "커밋 메시지" 커밋과 스테이징을 동시에 git diff 변경사항 확인 git log --stat 로그 통계 git log --graph --oneline 로그를 플로우에 따라 그래프를 그린다. oneline 옵션을 추가하면 한 눈에 편하게 볼 수 있음! 특: 예쁘다 git commit -amend 가장 최근 커밋 수정 git restore 파일/폴더명 스테이지에 올라가 있지 않을 때 취소 이전..
git init .git 파일 구조 .git Git 저장소의 모든 설정, 로그, 객체 데이터베이스 등을 포함하는 디렉토리 입니다. 이 디렉토리가 프로젝트의 Git저장소임을 나타냅니다. HEAD 현재 체크아웃된 커밋, 브랜치, 태그의 참조를 가리킵니다. 주로 현재 작업중인 브랜치를 가리키는데 사용됩니다. config 이 Git 저장소의 설정을 포함합니다. 사용자 이름, 이메일, 원격 저장소 주소 등 저장소 수준의 설정이 이 파일에 저장됩니다. description GitWeb과 같은 일부 서비스에서 사용하는 저장소의 설명을 포함합니다. 기본적으로는 큰 영향을 미치지 않습니다. hooks Git 훅스를 위한 스크립트 파일들이 저장되는 디렉토리입니다. 특정 이벤트(예: 커밋, 푸시)가 발생할 때 자동으로 실행..
시스템, 플랫폼, 프레임워크는 소프트웨어 개발의 세계에서 세 가지 다른 개념입니다: 1. 시스템 (System) 시스템은 일반적으로 특정 목적에 부합하는 완전한 독립형 소프트웨어 또는 하드웨어 설정을 의미합니다. 여기에는 소프트웨어와 하드웨어 구성 요소가 모두 포함될 수 있습니다. 시스템의 예로는 애플리케이션을 실행하고 하드웨어 리소스를 관리하기 위한 기반을 제공하는 Windows, macOS 또는 Linux와 같은 운영 체제를 들 수 있습니다. 시스템은 대개 크고 복잡하며 다양한 작업을 처리하고 소프트웨어 실행을 위한 사용자 인터페이스 또는 환경을 제공하도록 설계됩니다. 2. 플랫폼 (Platform) 플랫폼은 소프트웨어 애플리케이션을 개발하고 실행하기 위한 도구, 라이브러리 및 서비스를 제공하는 보다..
Label 자바에서는 label을 사용해 반복문, switch문 등에 이름을 붙일 수 있다. break와 continue에서 사용 가능! for문에 'mylabel' 이라는 이름의 레이블을 지정한 다음, break mylabel; 구문을 만난다면 -> mylabel이라는 이름이 붙은 바깥 for문을 빠져나감. public static void main(String[] args) { mylabel: for(int i=0; i
Java 14, Java 17에서 적용된 switch문의 새로운 문법들 실행문을 화살표로 (->) case -> A와 같이 표현할 수 있습니다. 일반 case(:)와 다르세 실행문이 여러줄이라면 반드시 중괄호{}를 사용해야 합니다. static void test(Day day){ switch (day) { case MONDAY -> System.out.println(6); case TUESDAY -> System.out.println(7); case WEDNESDAY -> System.out.println(8); case THURSDAY -> System.out.println(9); } } 여러개의 case 값 (,) 여러개의 case값에 같은 실행문을 동작시킵니다. static void test(Day..
JDK와 JRE JRE(JAVA RUNTIME ENVIRONMENT) JRE는 자바 프로그램을 실행하기 위한 라이브러리, 자바 가상 기계, 기타 컴포넌트들을 제공합니다. 자바 프로그램을 실행만 하고 개발은 하지 않는 일반인들을 위한 환경입니다. JDK(JAVA DEVELOPMENT KIT) JDK는 JRE에 자바 프로그램을 개발하는데 필요한 컴파일러, 디버거와 같은 도구들을 추가한 것입니다. JDK 안에 JRE가 포함되어 있습니다. JDK의 폴더 JDK의 기본 설치 폴더는 C:\Program Files\Eclipse Adoptium\jdk-버전 입니다. (자바21 기준) 이 안에 JDK와 JRE 폴더가 있습니다. 폴더 설명 bin 컴파일러, 디버거 등의 도구가 들어 있다. db Java DB, 아파치 D..
멋사 백엔드 스쿨 지원우리 학교 IT학과들 수업 중에 관심 있는 수업을 꽤나 많이 들었지만 여전히 내가 경험해 보지 못한 분야가 많다는 사실이 아쉬웠고, 졸작은 취업 포폴에 필수적으로 포함되기 때문에 정확한 취업 분야를 정하고 스킬을 쌓은 다음에 진행하고 싶다는 생각이 있었다. 때문에 나는 졸업프로젝트에 들어가기 이전에 1년 휴학을 결심했고, 휴학 계획 중 첫 번째는 KDT 교육을 수강하는 것이었다. KDT(K-Digital Training)를 듣겠다고 결정한 가장 중요한 이유는, 국비 지원 교육이기 때문이다. 나라 곳간을 털어먹으면서 부담 없이 해보고 싶었던 공부를 할 수 있다니... 백수 입장에서 선택할 수 있는 최고의 선택이라고 생각한다. 그중에서 멋사 BE스쿨을 선택한 이유? 일단 개강일이 3월..
sqld에선 이 정도만 알고있어도 충분한듯 정규화 - 데이터 정합성 (데이터의 정확성과 일관성을 유지)을 위해 엔터티를 작은 단위로 분리하는 과정 - 입력/ 수정/ 삭제의 이상현상(한 엔터티에 2개 이상의 종속성이 있을 때)을 제거 - 중복 속성 제거, 데이터 용량 최소화 제 1 정규형 - 모든 속성은 반드시 하나의 값만 가져야 한다. - 속성의 원자성 확보 제 2 정규형 - 엔터티의 모든 일반 속성은 반드시 모든 주식별자에 종속되어야 한다. = 완전 함수 종속 = 부분 함수 종속이 있으면 안된다. = 기본키의 부분 집합이 결정자가 되어선 안된다. 결정자? X -> Y인 함수적 관계를 성립시키는 X 함수적 관계? Y값이 오직 하나로 결정되는 관계 제 3 정규형 - 주식별자가 아닌 모든 속성간에 서로 종속..
해커의 목적 먼저, 해킹 의뢰를 받은 해커의 최종 목적은 ‘여기 어때’ 데이터베이스에 저장된 회원정보, 숙박예약정보, 제휴점 정보 등을 획득하는 것이었습니다. 해커는 데이터베이스 서버에 접근하기 위해서 ‘서비스 관리 웹서버’ 즉, 여기어때 서비스 관리 시스템에 접속하는 것을 목표로 하였습니다. ‘서비스 관리 시스템’에서는 회원 정보, 예약 정보를 확인하고 관리하는 기능이 있을 것으로 쉽게 예측할 수 있습니다. 서비스 관리 시스템에서 해당 정보에 접근할 수 있는 계정은 DB서버에 있는 회원 정보나 예약 정보 테이블에 접근할 수 있는 ‘권한 있는 사용자’라고 유추할 수 있습니다. 따라서 해커는 ‘서비스 관리 웹서버’의 ‘관리자 계정’으로 로그인을 하고자 계획합니다. 해커는 여기 어때 운영사에서 관리중인 웹사..