목록분류 전체보기 (187)
New World
암호화된 문자열의 code 배수 번째 글자만 빼내야 하니, String으로 받은 cipher을 배열로 만들어준 후 code에서 배수 번째 글자만 빼낸 것을 모아 return 해주면 된다. import java.util.Arrays; class Solution { public String solution(String cipher, int code) { String answer = ""; String[] s = cipher.split(""); for(int i = 0; i < s.length; i++){ if((i + 1) % code == 0){ answer += s[i]; } } return answer; } }
문제 설명 작성할 숫자 갯수 입력 후, 0 입력 시 최근 입력한 숫자 삭제하여 지금까지 나온 숫자의 합 노출 우선 모든 숫자를 가지고 있을 배열을 만든다. 이후 0의 갯수에 따라 최근 입력된 숫자부터 삭제한다 Java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int no = -1;// 마지막 원소의 위치를 가리..
패스워드 암호화 방법 - 단순 텍스트 - 단방향 해시함수의 다이제스트 - 솔팅 - 키 스트레칭 대칭키와 비대칭키 차이 대칭키 암호화 비대칭키 암호화 비밀키 암호 공개키 암호 양측이 동일한 키를 가지고 있으며, 암호화와 해제에 동일한 키를 사용하는 방식 공개키는 외부에 공개되어있고, 비밀키는 내부적으로 가지고 있고 서로 각각의 키로 암호화하거나 해제할 수 있는 방식 비밀키가 노출되며 연산성능은 덜 필요해 상대적으로 빠르다. 비교적 안전하며, 대신 연산 성능이 떨어지는 편 web server와 was차이 web server HTTP 프로토콜을 기반으로 하여 웹브라우저의 요청을 서비스하는 기능 ex. apach server, Nginx was DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위..
Git을 쓰는 이유와 깃과 깃허브의 차이점 git은 형상관리 도구 중 하나로 버전관리 시스템 소스코드를 효과적으로 관리할 수 있게 해주는 무료 공개 소프트웨어 gitHub는 local에서 관리한 소스코드를 업로드하고 공유할 수 있는 공간 git과 SVN의 차이점 git은 분산형 관리 시스템, SVN은 중앙서버에 소스코드와 히스토리를 저장한다 git은 여러 PC와 저장소에 분산해서 저장해서 중앙서버에 장애가 발생해도 커밋과 복원이 가능하다. 사본을 로컬에서 관리해 git이 SVN보다 빠르다. Git 이란 VCS(Version Control System)에 대해서 기본적인 이해를 요구하고 있다. Git 을 조금 더 알아보자 slide share Git 을 사용하기 위한 각종 전략(strategy)들이 존재한..
SQL injection 막는법 입력값에 대한 유효성 검사를 해주는 방법과 저장 프로시저를 사용하는 방법이 있다. 저장 프로시저는 사용하고자하는 쿼리에 미리 형식을 지정해 보안성을 높일 수 있다. 데이터베이스 설계부터 구현까지 전체 프로세스는 요구분석, 개념적 설계, 논리적 설계, 물리적 설계, 구현입니다. 먼저 사용자의 DB 사용목적을 파악하고 요구조건 명세서를 작성합니다. 이후 트랜젝션 모델링과 개념 스키마 모델링을 수행하여 ER그램을 그리고 개념스키마를 설계합니다. 논리적 설계에서는 DBMS에 논리적 스키마를 설계하고 트랜젝션 인터페이스를 설계합니다. 그리고 설계된 DB를 실제 시스템 상에 구현하는 단계까지 입니다.
RESTful API (REpresentational State Transfer) 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원에 대한 주소를 HTTP Method 를 통해 지정하는 방법 전반에 대한 패턴 REST 6 가지 원칙 Uniform Interface : Stateless : Caching : Client-Server : Hierarchical system : Code on demand : cf) 보다 자세한 내용에 대해서는 Reference 를 참고해주세요. RESTful 하게 API 를 디자인 한다는 것? 리소스는 URI로 표현되는데 가리키는 것은 명사로 표현 행위는 HTTP Method로 표현하고, GET, POST, PUT, PATCH, DELET..
Maven vs Gradle Maven Gradle Apache사에서 만든 빌드툴(build tool) pom.xml파일을 통해 정형화된 빌드 시스템으로 프로젝트의 전체적인 라이프 사이클을 관리 그루비(Groovy)를 기반으로 한 빌드 도구 Ant와Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구 - XML 기반으로 작성 - 생명주기(Lifecycle)와 프로젝트 객체 모델(POM, Project Object Model)이란 개념이 도입 - Ant의 장황한 빌드 스크립트를 개선 - pom.xml에 필요한 라이브러리를 선언하면 자동으로 해당 프로젝트로 불러와 편리 - 상대적으로 학습 장벽이 높다. - 라이브러리가 서로 의존하는 경우 복잡해질 수 있다..
Framework 특정 형태의 소프트웨어 문제를 해결하기 위해 상호 협력하는 클래스 프레임과 인터페이스 프레임의 집합 특정한 틀을 만들어놓고 거기에 살을 붙여 놓음으로써 프로그램을 만들어 작업시간을 줄여주는 것 프레임워크는 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성 프레임워크는 이렇게 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의 프레임워크 컴포넌트 들은 재사용이 가능 프레임워크는 좀 더 높은 수준에서 패턴을 조작 컴포넌트와 모듈의 차이 컴포넌트 - 작은 영역에서 서로 관련되어 있고 다용도로 사용이 가능 - UI를 제어하는 타이머같은 Back단에서 스레드를 보조 모듈 - 외부 인터페이스가 없는 복합적인 수요기능에서 실행될 수 있는 단위 - 데이터베이스나 이메일 같은..