1000번 문제 두 정수를 입력받아 A+B를 출력하는 프로그램을 작성 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 헷갈린 부분 처음에 클래스명을 Main으로 해주지 않아서 컴파일에러 Scanner 를 임포트 해주지 않아서 컴파일에러 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); int C = A + B; System.out.println(C); } } 2558번 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작..
객체 CRUD public class Member{ private String memberId; private String name; private String tel; ... } 여기서 tel을 추가할 경우 모든쿼리에 tel 컬럼을 추가해 주어야 한다. 엔티티 신뢰 문제 getTeam(), getOrder(), getDelivery() 를 가져올 수 있는지 확인해야함 SQL 에 의존적인 개발을 피하기 어려움 패러타임의 불일치 객체 vs 관계형 데이터베이스 관계형 데이터베이스 데이터를 잘 저장하는 것이 목표 객체(OOP) 데이터를 저장하는 관점이 아니라 어떻게하면 잘 추상화하고 관리를 잘할지가 관건 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공함 객..
다이나믹 프로그래밍이란 하나의 문제를 단 한 번만 풀도록 하는 알고리즘 분할 정복 기법은 '정렬'과 같은 몇몇 요소에 대해 동일한 문제를 다시 푼다는 단점을 가지고 있음. 단순 분할 정복으로 풀면 심각한 비효율을 낳는 대표적인 예시로 피보나치 수열이 있음 피보나치 수열의 점화식 D[i] = D[i - 1] + D[i -2] 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... 이런 경우 병합 정렬처럼 단순 분할 정복 기법을 사용하는 경우 이미 해결한 문제를 다시 반복적으로 해결하여 비효율적임 다이나믹 프로그래밍 가정 1번 가정 큰 문제를 작은 문제로 나눌 수 있음 2번 가정 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일함 크고 어려운 문제가 있다면 먼저 잘게 나누고 해결하여..
jsp(Java Server Page) Java 언어를 기반으로 하는 Server side 스크립트 언어이며 자바 코드를 넣어 동적인 페이지를 생성할 수 있음 Java 파일로 컴파일 됨 Servlet 순수 Java 로 만든 서버사이드 파일 Java 코드 안에 html 코드를 넣어 웹페이지를 구성 웹 컨테이너(tomcat) .java -> .class -> .obj 과정으로 컴파일 함 서버를 구동하면 .jsp와 같은 이름의 .java와 .class파일이 생성됨 사용자에게는 html 파일로 응답
프로토콜 통신을 하기위한 규약으로 HTTP, FTP, POP 등이 있음 HTTP 하이퍼링크를 통해 이미지, 동영상등으로 응답해주는 것 브라우저를 통해 서버에 데이터를 요청하며 브라우저를 통해 응답 받음 FTP(File Transform Protocol) HTTP 프로토콜과 달리 파일 전체가 전송됨 글, 텍스트, 이미지 등이 하이퍼링크로 전송 SMTP, POP 메일과 관련된 통신규약 IP 주소 컴퓨터마다 가지고 있는 주소 DNS 도메인을 IP주소로 매핑해줌 port 서버에 들어와서 맞는 프로그램을 찾기 위해 존재함
synchronized 사용 public synchronized static Database getInstance(String name) { // synchronized 를 사용하여 실행되는 것들을 줄세워 차례대로 실행 -> 첫번째 스레드만 실행 // 비용이 비쌈 if(singleton == null) { singleton = new Database(name); } return singleton; } static 으로 미리 객체생성 public class Database { // static 이므로 프로그램이 시작될 때 동시에 객체 생성 private static Database singleton = new Database("products"); private String name; private Dat..
Database.java public class Database { private static Database singleton; private String name; private Database(String name) { try { // 실제 데이터베이스 접속 환경과 비슷하게 시간이 걸리도록 처리 Thread.sleep(100); this.name = name; }catch(Exception e) { } } public static Database getInstance(String name) { // 최초에는 singleton이 null이므로 singleton이 생성됨 // 최초 생성 이후에는 singleton이 null이 아니므로 singleton이 if(singleton == null) { sin..
싱글턴 패턴 최대 N개로 객체 생성을 제한하는 패턴 객체가 너무 많아지는 경우 컴퓨터 자원을 과도하게 사용하게 되며 이는 프로그램 전체의 속도를 느리게 할 수 있다. 개발자는 객체 최대 개수를 제한할 필요가 있음 생성되는 객체의 최대 개수를 제한하는데 있어 객체의 생성을 요청하는 쪽에서는 일일이 신경쓰지 않아도 되도록 만들어 주는 것이 중요 싱글턴 패턴 사용 예 일반 자바 프로그래밍 데이터베이스 커넥션 풀 로그 라이터 등 게임 프로그래밍 사운드 매니저 스코어 매니저 하나의 객체로 데이터를 하나로 유지하고 싶을 때 사용 Database.java public class Database { private static Database singleton; private String name; public Data..
- Total
- Today
- Yesterday
- javascript
- Java
- 자료구조
- 소프트웨어
- 구조체
- 인접리스트
- 운영체제
- 퀵정렬
- 배열
- 스텍
- 이진탐색
- 병행프로세스
- C
- dfs
- react
- 최단경로
- stackframe
- server side rendering
- 세마포어
- BFS
- client side rendering
- 인접행렬
- 교착상태
- 동적프로그래밍
- 클래스
- 입출력장치
- 알고리즘
- 재귀함수
- C++
- Stack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |