본문 바로가기

전체 글

(84)
[Docker] Docker로 MySQL설치하고 접속하기 # 1. Docker 설치 https://www.docker.com/get-started/에서 OS 및 환경에 맞는 Docker Desktop을 설치한다. 설치 후, Docker를 실행하면 고래선 모양의 아이콘이 생긴다. Docker를 실행하지 않고 Docker기능을 사용하려하면 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 의 에러메시지를 만나므로, 반드시 실행해준다. 설치가 완료된 후에 다음 명령어를 실행하여 버전을 출력해보자.  docker -v Docker version 20.10.8, build 3967b7d # 2 . MySQL Docker 이미지 다운로드 dock..
MVC 웹 프레임워크란? 웹 사이트를 비롯한 소프트웨어는 MVC(Model, View, Controller) 란 접근법이 많이 사용된다. VIew는 말 그대로 눈에 보이는 것. 웹의 경우 HTML, CSS로 나타내는 요소들이다. Controller는 제어하는 것. 로직들이 여기서 많이 다뤄진다. Model은 "데이터"에 관련된 것이다 DB에 저장되는 데이터들의 형식을 지정하고, 저장하고 불러오는 작업들에 관한 코드들이 model 파트에서 이루어진다. 게시판을 예로 들면 게시판에 쓰이고 읽히고 수정되는 글들은 데이터베이스에 데이터로 저장된다. 이 데이터의 형식을 지정하고, 저장하고 불러오는 작업들에 관한 코드들이 이 Model파트에서 이루어진다. 이걸 사용자들이 목록과 글, 입력화면 등으로 시각적으로 볼 수 있게 해주는 HTML,..
[SpringBoot]간단한 게시판 만들기 Ref https://nyyang.tistory.com/123 https://devlog-wjdrbs96.tistory.com/209 start.spring.io 를 이용해 생성함 GENERATE 한 뒤에 build.gradle을 불러왔다. 2. Lombok 사용을 위한 설정 **Lombok이란 무엇인가? -> 보통 DTO나 Model, Entity의 경우 여러 속성(Attribute)이 존재하고, 이들이 가지는 property에 대해 Getter, Setter, 생성자들을 매번 작성해주어야 하는데 이러한 부분을 자동으로 만들어주는 Library라고 할 수 있다. Lombok이 없다면 Getter, Setter, 생성자 등을 매번 직접 작성해주어야하고, 변수의 이름이 바뀐다고 하면 직접 바꾸어주어야하는 ..
[Docker] Docker란 무엇인가? 예를 들어 계약건마다 현지로 다니면서 일을하는 사람 A가 있다고 생각하자. 매번 많고 복잡한 장비들을 갖고 다니면서 설치하는데 신물이 났다. Docker가 이 일들을 간편하게 해결해 줄 수 있다. 이 복잡한 장비들이 설치된 그 상태로, 사본들로 복제한다. 하나하나 할 수도 있고, 장비들이 연결되고 조립된 모습까지 저장할 수 있다. 이 사본들을 다른 곳에 가져가서 그대로 설치할 수 있다! 허브라는 곳에 저장해서 클라우드처럼 어디서나 내려받아 쉽게 사용할 수 있게 한다. 근데 일을 혼자하진 않잖아요? 같이 다른 작업을 하는 B씨도 작업실을 같이 쓴다. 물건도 겹치고, 전선도 꼬이는데 분리된 작업 공간을 만들면 해결할 수 있다! 컨테이너로 분리되고 필요에따라 연결된 독립된 업무환경을 구축할 수있다. 서버를 돌..
[백준] 10809 - 알파벳 찾기 - JAVA[자바] 1. 먼저 int형 배열을 하나 생성하여 모두 -1로 초기화 시킨다. 이 배열은 문자열 S에 각 문자의 위치를 가리킬 배열이다. int[] arr = new int[26]; for(int i = 0; i < arr.length; i++){ arr[i] = -1; } 2. S라는 문자열이 주어진다. String S = br.readLine(); for(int i = 0; i < S.length(); i++) { char ch = S.charAt(i); if(arr[ch - 'a'] == -1) {// arr 원소 값이 -1 인 경우에만 초기화 arr[ch - 'a'] = i; } } 3. 반복문을 통해 문자열의 각 문자를 검사한다. 즉, charAt()이라는 메소드를 사용하여 문자를 추출한 뒤 ch라는 변..
[백준] 11720 - 숫자의 합 - JAVA[자바] 2가지 방법이 있다. 1. Scanner 로 입력받아 charAt() 을 사용하여 푸는 방법 2. BufferedReader 로 입력받아 getBytes() 을 이용하여 푸는 방법 방법 1. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); String a = in.next(); in.close(); int sum = 0; for(int i =0; i < N; i++){ sum += a.charAt(i) - '0'; } System.out.print(sum); } } Scanner를 이용한 가장 ..
[백준] 11654 - 아스키 코드- JAVA[자바] 매우 쉬운 문제이지만, 주의할 점은 "출력하는 값이 주어진 입력에 대한 아스키 코드 값" 이라는 것이다. public class Main { public static void main(String[] args) throws Exception { int a = System.in.read(); System.out.print(a); } } System.in은 가장 기초적인 입력방법이다. System.in은 byte값으로 문자 한 개를 읽어서 해당 문자에 대응되는 아스키 코드 값을 저장할 수 있다. 그리고 반드시 주의해야 할 점은 예외처리를 해주어야한다. IOException (java.io 패키지를 import 해야함) 로 메인 옆에 써주어도 되고, 그냥 Exception 으로 처리해도 된다.
[백준] 1065 -JAVA[자바] 예제 입력 1, 2에서 볼 수 있듯 100미만의 수는 그 자체로 한수이다. 숫자가 1자리, 2자리는 그 자체로 등차수열이라고 할 수 있다. 결국 경우의 수를 따져봐야 하는 것은 100-1000의 숫자이다. 즉, 3자리의 숫자에 대한 한수 여부를 확인하면 되므로 (1000은 한수가 아니다) 백의 자리 숫자 : N / 100 십의 자리 숫자 : (N/10) % 10 일의 자리 숫자: N % 10 이고, 등차 수열의 경우 백의 자리 숫자를 X, 등차를 a라고 하면 백의 자리 숫자: X 십의 자리 숫자: X+a 일의 자리 숫자: X+2a이므로 (십의자리 숫자) *2 = (백의 자리 숫자) + (일의 자리 숫자) 의 관계를 갖고있다. 이를 식으로 표현하면, ((N/10) % 10) *2 = (N/100) + (N..