본문 바로가기

전체 글323

문자열의 타입 판별 메소드 - isalnum() = 문자열이 영어 혹은 한글 혹은 숫자로만 구성되어 있으면 True, 아니면 False - isalpha() = 문자열이 영어 혹은 한글로만 구성되어 있으면 True, 아니면 False - isdigit() = 문자열이 숫자로만 구성되어 있으면 True, 아니면 False - islower() = 문자열이 소문자로만 구성되어 있으면 True, 아니면 False - isupper() = 문자열이 대문자로만 구성되어 있으면 True, 아니면 False 2022. 10. 24.
빅데이터 부트캠프 74일차 (Java Web) 개발 플랫폼- Java SE (Standard Edition) = 데스크탑, 서버, 임베디드 시스템 개발을 위한 플랫폼- Java EE (Enterprise Edition) = WAS의 지원으로 실행되는 시스템 개발을 위한 플랫폼※ WAS(Web Application Server) = 인터넷 상에서 HTTP프로토콜을 통해 사용자 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어 -> ex) apache tomcat- Java ME (Micro Edition) = 모바일 장치나 내장형 장치에서 실행되는 애플리케이션 지원 플랫폼 Eclipse - Apache Tomcat 연동- 아파치 톰캣 사이트(https://tomcat.apache.org/)에서 아파치 톰캣 다운로드- 이클립스에서 File - New -.. 2022. 10. 24.
빅데이터 부트캠프 74일차 (Java) 빌더 패턴(Builder) - 빌더라는 객체를 통해 필요한 데이터만 설정할 수 있는 패턴 - 장점 : 필드 개수에 따른 사용자 정의 생성자를 많이 만들 필요가 없다, 계층적 클래스에 사용하기 좋다 - 단점 : 빌더 객체 생성 비용이 클 수도 있다. 2022. 10. 24.
sum 시간복잡도 for문과 sum을 이용하여 문제를 풀었다가 답은 맞췄는데 시간 초과로 인하여 실패한 경우가 발생했다.. 처음에는 반복문 혹은 반복문 안에 있는 조건문의 문제인줄 알았는데 구글링해보니 sum()이 시간복잡도가 O(n)이라 반복문을 돌릴때마다 시간을 잡아먹은 것이었고 결국 sum을 미리 정의하지 않고 반복문에서 매순서때마다 일일이 적용한 것이 문제였다.. 앞으로 코테 문제 풀때는 반복문에서 sum, max, min과 같은 리스트 관련 수학 메소드을 사용하는 것은 자제하고 해결한 문제처럼 사전에 처리한 변수를 정의하여 사용해야 할듯하다. https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지.. 2022. 10. 23.
문자 표현 정보 단위 비트(Bit) - 0과 1을 표현하는 가장 작은 정보 단위 - n비트로 2^n가지 정보 표현 가능 - 1byte = 8bit, 1kB = 1000byte 워드(Word) - CPU가 한 번에 처리할 수 있는 정보의 크기 단위 인코딩 - 인코딩(Encoding) = 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정 (사람의 언어를 컴퓨터 언어로) - 디코딩(Decoding) = 0과 1로 이루어진 문자 코드를 문자로 변환하는 과정 (컴퓨터 언어를 사람 언어로) - 아스키(ASCII) 코드 = 7비트(8비트 중 1비트는 오류 검출에 사용)로 하나의 문자를 표현하는 방식 -> 128가지 문자 - 영어는 알파벳을 이어 쓰면 단어가 되는 조합형 인코딩이지만 한글은 초성, 중성, 종성이 조합되어 완성.. 2022. 10. 23.
컴퓨터 기본 구조 컴퓨터가 이해하는 정보 - 데이터(Data) = 숫자, 문자, 이미지, 동영상과 같은 정적인 정보 - 명령어(Instruction) = 컴퓨터를 실질적으로 움직이는 정보 (컴퓨터 = 명령어를 처리하는 기계) 컴퓨터의 핵심 부품 CPU(Central Processing Unit, 중앙처리장치) - 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 부품 ※ 클럭 속도(Clock Speed) = CPU가 명령어를 처리하는 속도 (클수록 성능이 높음) ex) 3GHz = 1초에 30억 개의 클럭 신호 발생 = 초당 30억 개의 명령어 처리 가능 - 하나의 ALU, 하나의 제어 장치, 여러 개의 레지스터로 구성 - ALU(Arithmetic and Logical Unit, 산술 논리 장치) = 계산을 위.. 2022. 10. 23.
자바 - MySQL 연동 미니 프로젝트 목적 MySQL에서 고객, 주문, 상품, 판매자 테이블 생성 후 Eclipse로 JDBC를 통해 MySQL과 연동시켜 CRUD를 할 수 있도록 구현 프로젝트 진행시 막혔던 점들 - MySQL에서 외래키 설정시 자꾸 1061 오류가 떠서 외래키 이름 관련인 줄 알았는데 알고보니 부모 테이블의 데이터가 자식 테이블의 기본키 데이터의 일부만 가지고 있어서 오류가 발생했던 것이었음.. 결국 부모 테이블에 빠진 자식 테이블의 데이터를 더 추가하고나니 해결... - Eclipse로 CRUD 구현할 때 SELECT로는 ResultSet을 이용하여 데이터를 출력하였고 INSERT에서는 입력값을 이용하여 입력한 데이터를 출력하였는데 UPDATE와 DELETE에서는 왜 SELECT처럼 ResultSet을 이용해도 데이터가.. 2022. 10. 22.
빅데이터 부트캠프 72&73일차 Java Eclipse & MySQL 연동 - 기본 세팅 (프로젝트에 JDBC 드라이버 연결) = Eclipse에 Project 생성 -> Project 선택 후 마우스 우클릭 -> Build Path -> Configure ~ 클릭 -> Add External JARS -> JDBC 파일 선택 후 Apply (JDBC 파일은 따로 다운받아야 함) - Eclipse에 MySQL Driver 연결 -> DB 연결 -> SQL 문장 객체 생성 -> SQL 문장 실행 객체 생성 -> 데이터 활용 -> DB 종료 MVC 패턴 + DB 연동 DTO(Data Transfer Object) - 데이터 전송 객체 - DTO는 getter, setter, toSpring, constructor(생성자)에 대한 정의로만 .. 2022. 10. 20.
빅데이터 부트캠프 71일차 제약조건(constraint) - 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙 ※ 데이터의 무결성 = 데이터의 정확성과 일관성, 유효성을 유지하고 보증하는 것 - CREATE 문으로 테이블을 생성할 때나 ALTER 문으로 컬럼을 추가할 때 설정 가능 종류 1. NOT NULL = 지정한 컬럼이 NULL 데이터를 가질 수 없게 설정 2. UNIQUE = 지정한 컬럼에서 데이터 중복 입력 불가능하게 설정 3. DEFAULT = 데이터가 입력되지 않을 시 NULL 대신에 입력할 기본값 설정 4. PRIMARY KEY = 기본키 설정 (UNIQUE, NOT NULL 자동 적용) 5. FOREIGN KEY = 외래키 설정 기본키(Primary Key) - 데이터 구분을 위한 핵심 데이.. 2022. 10. 19.
빅데이터 부트캠프 70일차 cmd에서 MySQL 접속하는 방법 - 제어판 - 시스템 환경 변수 설정 - 시스템 변수 - Path에서 MySQL의 bin 폴더 경로 추가후 최상단으로 이동 (이 작업을 시행하지 않으면 cmd를 통해 MySQL로 접속 불가) - cmd창에서 [mysql -u DB명 -p] 입력 후 비밀번호까지 입력해주면 해당 DB로 mysql 접속 ※ [mysqladmin -u DB명 password 새로운 비밀번호] = DB 비밀번호 변경 - exit로 종료 MySQL 쿼리 실행 순서 - FROM -> WHERE -> (AS) -> GROUP BY -> HAVING -> SELECT -> ORDER BY - AS로 설정한 컬럼의 별칭을 GROUP BY, HAVING, ORDER BY에 적용가능 (FROM, WHERE.. 2022. 10. 18.
RE 정규표현식 기본 기본 메타 문자 A-Z = 대문자 a-z = 소문자 0-9 = 숫자 가-힣 = 한글 \s = 띄어쓰기 ^ = 부정 표현(not) - = 범위 설정 ex) 0-5 = 0,1,2,3,4,5 A-D = A, B, C, D . = 어떠한 텍스트도 포함 ex) [a.b] = -> acb, aeeeeb, a1b, aZb 모두 적용 (a와 b 사이에 어떠한 텍스트가 들어와도 적용) * = 0번 이상 반복 + = 1번 이상 반복 ex) [ca*t] = ct에 정규식 적용 O, [ca+t] = ct에 정규식 적용 X (ct에서는 a가 0번 반복) [] = [] 안에 있는 문자들과 일치하는 것에 대해 적용한다는 의미 ex) [abc] = a, b, c 중 한 개의 문자와 매치 -> re.sub("[abc]", "", 데이.. 2022. 10. 17.
Git Merge Conflict (VScode.ver) - 같은 파일을 서로 다른 브렌치에서 수정한 후 커밋한 경우 git merge conflict 문제가 발생 - 충돌 문제가 발생할 경우 충돌이 발생한 각각의 브렌치의 동일한 파일에 대한 코드를 보여주는데 HEAD와 ===== 사이 코드는 지금 현재 사용하고 있는 브렌치의 코드고 그 밑과 외부 브렌치명 사이 코드는 현재 브렌치와 충돌이 발생한 외부 브렌치의 코드 - 이 문제를 해결하려면 현재 브렌치의 코드와 현재 브렌치와 충돌이 일어나는 외부 브렌치의 코드 중에서 어떤 브렌치의 코드를 적용할지 결정한 후 최종적으로 add, commit, push를 해줘야 변경 사항이 반영 - VScode는 merge 충돌 에러 발생시 현재 브렌치의 코드와 외부 브렌치의 코드 중에서 어떤 브렌치의 코드를 적용할지 선택하는 .. 2022. 10. 17.
빅데이터 부트캠프 69일차 데이터베이스(DataBase) - 구조화된 정보 또는 데이터의 조직화된 모음 - 데이터베이스 관리 시스템(DBMS)에 의해 제어 - CRUD(Create, Read, Update, Delete) = 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능 - DB에서 CRUD는 각각 INSERT, SELECT, UPDATE, DELETE를 가리킴 관계형 데이터베이스(Relational DataBase - RDB) - 키(key):값(value)의 간단한 관계를 가진 데이터들을 테이블화 시킨 간단한 원칙의 전산정보 데이터베이스 - SQL(Structured Query Language) = RDB에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어 구성요소 - 열(column), 필드(field),.. 2022. 10. 17.
빅데이터 부트캠프 68일차 Thread - 순차적으로 실행할 코드의 흐름 - 하나의 스레드는 하나의 코드 흐름 - 보통 한 개의 프로세스는 한 가지의 일을 하지만, 스레드를 이용하면 한 프로세스 내에서 두 가지 또는 그 이상의 일을 동시에 할 수 있음 - start() = 지정한 스레드 동작 실행 - setPriority() = 스레드 실행 우선순위(1~10) 지정 (기본값 = 5) 생성방법 1. public class 클래스명 extends Thread를 이용한 Thread class 생성 - run() 메소드에 대한 오버라이딩이 필수! - run() = Thread().start()로 인하여 스레드가 동작하기 시작할때 실행되는 메소드 cf. 프로세스(Process) - 운영체제에서 실행중인 하나의 프로그램 - 멀티 태스킹 2... 2022. 10. 14.
빅데이터 부트캠프 67일차 Stream - 데이터를 전송하는 연결 통로 - 단방향, 선입선출 ByteStream - 1byte를 입출력할 수 있는 스트림 - Java에서 입출력 스트림을 통해 흘러가는 데이터의 기본 단위 - 바이트로 구성된 이미지, 동영상, 음악 파일 처리에 적합한 스트림 - InputStream과 OutputStream 두 종류가 존재 ByteStream을 이용한 데이터 입/출력 - output은 바깥에 파일로 작성, input은 바깥 파일을 읽어 내부로 입력으로 생각하면 편리 FileOutputStream/FileInputStream = 바이트 데이터 입/출력 FileWriter/FileReader = char 타입 데이터 입/출력 - 바이트 스트림으로 바이너리 파일 쓰기 FileOutputStream 객체 생.. 2022. 10. 13.