본문 바로가기

전체 글196

[15일차] JAVA Programmers 개념정리 2022-07-08 추상클래스 추상 클래스란 구체적이지 않은 클래스를 의미한다. 독수리, 타조는 구체적인 새를 지칭하는데 새, 포유류 같은 것은 구체적이지 않다. 이런 것을 구현한 클래스를 추상 클래스라고 한다. 추상 클래스 정의하기 추상 클래스는 클래스 앞에 abstract 키워드를 이용해서 정의한다. 추상 클래스는 미완성의 추상 메소드를 포함할 수 있다. 추상 메소드란, 내용이 없는 메소드 이다. 즉 구현이 되지 않은 메소드이다. 추상 메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 한다. 추상 클래스는 인스턴스를 생성할 수 없다. public abstract class Bird{ public abstract void sing(); public void fly(){ System.out.p.. 2022. 7. 8.
[15일차] JAVA 2022-07-08 다형성 polymorphism 대입되는 객체에 따라서 메서드를 다르게 동작하도록 구현하는것 이는 실행 도중 동일한 이름의 다양한 구현체 중에서 각각의 메서드를 선택할 수 있다는 것을 의미한다. 동일한 명령을 내려도 객체의 종류에 따라 다른 결과가 나타나도록 하는 프로그래밍 기술. EX) Animal 클래스의 move move() 메서드를 자식 클래스에서 수정한다면 각 객체에 적합하게 이용할 수 있다. 클래스의 멤버 = 필드 + 메서드 필드 = 멤버 변수 ( = 속성. 상태) 메서드 = 멤버 메서드 ( = 수행할 동작) 부모의 reference변수는 자식의 reference를 볼 수 없다. 실제 들어있는 메소드가 호출 Car 객체 재사용 Car라는 생성자에 두가지 타입의 엔진 완전히 분.. 2022. 7. 8.
[14일차] JAVA 객체지향 필드를 만들면 초기화를 안하고 선언만 해놓고 객체를 만들면 해당 타입에 기본값만 들어가게된다. local 변수는 만들어놓고 초기화를 안하면 쓰레기 값이 들어있다. -> 책에 있는 내용 : 필드 선언은 기초 타입 변수 선언처럼 선언할 때 명시적으로 초기화할 수 있다. 그러나 지역변수와는 다르게 명시적으로 초기화하지 않으면 표 4-1 과 같이 기본값으로 초기화 된다. 자바는 함수가 없다. 메서드만 유일 C언어 / 파이썬에만 함수 있다. 메서드 처음부터 명확하게 정의할 것 new 연산자 자바에서 래퍼런스 타입의 객체를 사용할 때 new 연산자 사용 new 연산자들은 메모리 heap 메모리 객체 만든다. heap reference 값을 리턴 해준다. stack 영역에 있는 car는 local 변수로 들어감 클래.. 2022. 7. 7.
JAVA Programmers 개념 정리 2차원 배열이란 배열의 배열이다. 2차원 배열 생성 방법 정수를 4개씩 담을 수 있는 배열이 3개 생성된다. int[][] array4 = new int[3][4]; 2차원 배열에 값을 저장하는 방법 만약 array4[1] = 10 ; 이렇게 사용하면 오류!! array4[1] 은 또 다른 1차원 배열을 가리킬 수 있는 참조형 변수이기 때문에 값을 담을수는 없다. array4[0][0] = 10; 가변크기의 2차원 배열을 생성하는 방법 int[][] array5 = new int[3][]; //위와 같이 선언하면 array5는 3개짜리 배열을 참조한다. 3개짜리 배열은 아직 참조하는 배열이 없다는 것을 의미. array5[0] = new int[1]; //정수를 하나 담을 수 있는 배열을 생성해서 arr.. 2022. 7. 6.
[13일차] JAVA 연산자 / 제어문 for if while do while 자바 단축키 ctrl + a -> ctrl shift f 자동정렬 ctrl shift l단축키 연산자 비트 16비트 4바이트씩 0~ 2**16-1까지 표현 가능 0일때 양수를 입력 1일때 음수를 입력 -2**15~ 2**15-1 한비트씩 줄어드니깐 2의 보수법 1일때) 0 0 0 0 0 0 0 1 -1일때) 1 1 1 1 1 1 1 1 MSB 부호비트를 제외한 -2**7부터 2**7까지 표현 가능 부호비트 0 , 1 16진수 0 1 0xFFFF 0 0 0 0 1 0 1 0 (2) = 10 1 1 1 1 0 1 0 1 이러면 읽을 수 없음 0 0 0 0 1 0 1 0 (2)인데 +1 을 해줘서 0 0 0 0 1 0 1 1 이 된다. 2**3 + 2**1 + 2**0 = 11 인데 부호가 -이니깐 -11 부.. 2022. 7. 6.
[12일차] JAVA 역사/ 설치/ println 탄생배경 컴파일러 언어 : c언어 C => 컴파일러 => 기계어 기계어를 실행 intel CPU 사용 cpu 자체가 명령어 셋이 다 다르다 cpu가 굉장히 많았는데 intel이 동일 cpu 컴파일 명령어가 별도로 있어야한다. os에서도 종속이 된다. c를 다른 회사의 cpu를 돌리려면 컴파일 프로그램을 머신을 다시 컴파일해야한다. 소스코드 레벨에서 호환이 된다. 애플이 맥북 cpu m2 와 intel은 완전 다르다. 바이트코드를 실행하기 위해서는 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신 인터프리터 언어 - 속도가 느려지는 걸 감수,, 각 cpu에 맞는 JVM 소스 코드를 컴파일한 파일을 한번 작성 하고 어디서나 사용할 수 있음 Java SE 17 (LTS) .. 2022. 7. 5.
[12일차] mongoDB 시험 2022. 7. 5.
[12일차] MongoDB 정리본 2022-07-05 TUE sample DB 사용 db.companies.findOne({name : /Twitter/}) db.companies.aggregate([ {$match: {"ipo.pub_year": {$exists: true, $ne: null}}}, {$group:{ _id : {ipo_year: "$ipo.pub_year"}, companies: {$push: "$name"} }}, {$sort: {"_id.ipo.pub_year" : 1}} ]) db.companies.aggregate([ {$group: { _id: null, count: {$sum: 1} }} ]) // document 개수세기 db.companies.aggregate([ {$group: { _id: "$cate.. 2022. 7. 5.
[12일차] MongoDB 2022-07-05 TUE ipo 기업공개(企業公開, 영어: initial public offering, IPO)는 기업 설립 후 처음으로 외부 투자자에게 주식을 공개하고, 이를 매도하는 업무를 의미한다. 주식을 공개하는 방법으로는 자신의 회사주를 주식 시장에 등록하는 작업을 들 수 있다. 기업공개 과정 가운데, 회사는 외부자금을 빌리는 경우가 많다. 하지만 일단 상장거래가 된 후, 주가가 높아 졌을 시, 추가적인 주식 발행을 통해 자금 조달을 할 수 있다. [위키백과] document 개수 세는 방법 test DB use lookup 연산자 https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/ 2022. 7. 5.
[11일차] MongoDB 정리본 db.restaurants.aggregate([{ $match: { cuisine: "Hamburgers" } }]) db.restaurants.findOne() db.restaurants.aggregate([ { $match: { cuisine: "Hamburgers" } }, // 배열이 stage 추가 가능 { $sort: { name: 1 } }, // 오름차순 정렬 { $skip: 10 }, // 상위 10개 skip { $limit: 10 }, // 10개만 출력 { $project: { _id: 0, cuisine: 1, borough: 1, name: 1 } } ]) db.restaurants.aggregate([ { $match: { "address.street": "Stillwell A.. 2022. 7. 4.
[11일차] Studio 3T for MongoDB 2022.07.04 Studio 3T for MongoDB Upsert 있으면 업데이트 없으면 insert 내부적으로 upsert를 제공한다. $inc 연산자는 이미 존재하는 키의 값을 변경하거나 새 키를 생성하는 데 사용한다. 분석, 분위기, 투표 등과 같이 자주 변하는 수치 값을 갱신하는 데 매우 유용하다. 3이 나올 것 같지만,, 28이 나온다. 이유는? 동작 메커니즘이 있다. upsert니깐 없으니 추가하고 있으니 업데이트해주는 rep가 25인 새로운 도큐먼트를 만들고 3만큼 증가시켜 rep는 28이 된다. 갱신 입력을 지정하지 않으면 {"rep" : 25}는 어떤 도큐먼트와도 일치하지 않으며 25일도 발생하지 않는다. 똑같이 들어가는 거 확인 gift 필드 추가해서 삽입한 도큐먼트 세개에 각각 .. 2022. 7. 4.
[9일차] MySQL + PYTHON import pymysql def task1(): conn = pymysql.connect(host='127.0.0.1', user='gyuwon', password='1234',db='sakila', charset='utf8mb4') con,cur,row =None,None,None film_id, title, description, release_year, language, category ="","","","","","" cur = conn.cursor() user_input_category = input("카테고리를 입력하세요.\n") my_sql_input_category = "'" + user_input_category + "'" find_move_by_category_query = "sele.. 2022. 7. 1.