。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

[네이버클라우드] 클라우드 기반의 개발자 과정 7기 147

[NC7기-66일차(7월27일)] - 웹프로그래밍 47일차

개인 프로젝트: 보드 리스너에 getAttribute 추가 52. Mybatis SQL Mapper Framework 1. 현황 ================= > 2. 해결 MySQLBoardDao 자바코드(JDBC API) + SQL코드 코드 관리가 어렵다 JDBC API 호출코드(뻔한코드)가 반복된다. 자바코드와 sql코드를 별도 파일로 분리 => 코드 관리가 쉽다 JDBC API 호출코드를 캡슐화 => 자바프로그래밍이 간결해짐 할거: **서버의 bitcamp - dao를 myapp 밑으로 옮기기 myapp 빈폴더는 깃에 저장안댐 ~ 실제 저장소 .gti 나머지는 working directoy 넣는 건 check in, commit, 꺼내는 거 check out 서버에서 최신 버전 받아오는거 : 패..

[NC7기-65일차(7월26일)] - 웹프로그래밍 46일차

common - requesteneity 삭제 51 - DB커넥션 풀을 이용한 connection 재사용하기 1. Connection 당 thread 할당 2. thread 별로 임시 DB 사용 3. thread 별로 commit / rollback 이 이루어짐 4. 클라이언트 별 독립된 작업을 수행 = 클라이언트 간 작업의 간섭이 없음. 1 , 2 번 하고 3번 임시 디비 저장되는데 3번이 갑자기 commit 해버리면 임시 db에 잇는 모든게 실제 터미널에 적용됨 근데 1의 첨부파일이 너무 커서 insert 실패 해서 roll back 하려는데 이미 commit 을 해서 client 1,2의 작업을 rollback 할수 없다. client 3개가 하나의 connection을 공유하고 있기때문에 dbms..

[NC7기-64일차(7월25일)] - 웹프로그래밍 45일차

이전 버전 : C/S Architecture (C, C++, VB, PowerBuilder, Delphi ,, 4세대 언어들로 작성) Application Server Architecture 특징: 모든 기능 서버에서 수행 -> 서버에 부하가 집중됨 -> 해결하기 위해 cloud computing 기술의 진보 (clastering H/W 기술 & 분산 컴퓨팅 S/W 기술 도입) 프로젝트 적용 기존 app server 지우고 client를 server로 복사하고 build.gradle 수정 2개, gradle eclipse server, clientapp 수정 , client 폴더들 지우기 common에 netprotocol 추가 클라이언트에 서버의 prompt 끌고 오기 . prompt 수정 ,,, se..

[NC7기-63일차(7월24일)] - 웹프로그래밍 44일차

java database connectivity? 현재 상태 : *DAO와 DBMS createDate 수정 date 수정 delete에 암호 추가 where 절에 입력한 %s를 비번으로 사용하게 되면 해킹쉬움 그러면 안됨 ~! sQL 삽입 공격 방어하기 // SQL 삽입 공격 // => 입력 문자열에 SQL 명령을 삽입하여 프로그램의 의도와 다르게 데이터를 조작하는 행위. // => 사용자가 입력한 값을 가지고 SQL 문장을 만들 때 이런 문제가 발생한다. // => 예를 들어 이 예제를 실행할 때 다음과 같이 입력해 보라! // 제목? aaaa // 내용? bbbb'), ('haha', 'hoho'), ('hehe', 'puhul // // 위에서 준비한 SQL 문에 값을 설정한다. // => ? :..

[NC7기-62일차(7월21일)] - 웹프로그래밍 43일차

java coding 1번 문제 다시 보기 obj = new String("Hello"); obj.toCharArray(); // 컴파일 오류 // obj는 object타입이고 object클래스에는 toCharArray() 가 없다. ((String)obj).toCharArray(); // 컴파일러에게 obj가 String 타입임을 알려줘야한다. => 알려주는것: "형변환"(Type casting), (Type conversion) 다형적 변수(Polymorphic variables)의 장점: object에 온갖걸 다 넣을 수 있음 단점: 넣고 빼서 형변환을 다 시켜야됨 * 제네릭 사용 후 What echo (what obj) {...} // 여러 타입에 공통으로 사용할 수 있는 범용(generic)메서..

[NC7기-61일차(7월20일)] - 웹프로그래밍 42일차

https://github.com/PacktPublishing/Java-Coding-Problems.git GitHub - PacktPublishing/Java-Coding-Problems: Java Coding Problems, published by Packt Java Coding Problems, published by Packt. Contribute to PacktPublishing/Java-Coding-Problems development by creating an account on GitHub. github.com 코딩 개념 잡는 자바 코딩 문제집 * 테이블 조인 - ERD(Entitiy Relationship Diagram) (데이터(테이블)간의 관계도) * sql의 주석 : -- * CO..

[NC7기-60일차(7월19일)] - 웹프로그래밍 41일차

# DML(Data Manipulation Language) 데이터 등록, 변경, 삭제를 다루는 SQL 문법 **모든 테이블은 반드시 프라이머리키를 가져야함. (데이터가 안들어간 상태에서 하는게 좋음 들어가면 복잡해) /* 연락처 테이블 생성 */ create table test1 ( no int not null, name varchar(20) not null, tel varchar(20) not null, fax varchar(20), pstno varchar(5), addr varchar(200) ); /* PK 컬럼 지정 */ (artificial key (인공키)) alter table test1 add constraint test1_pk primary key (no); /* 자동 증가 컬럼 지정..

[NC7기-59일차(7월18일)] - 웹프로그래밍 40일차

DBMS : Database(data를 저장한 파일) 를 관리하는 시스템 Database Management System ex) Oracle(Oracle), MS-SQL(MS), MySQL(Oracle), DB2(IBM), Tibero(Tmax), Cubrid, Altibase, MariaDB(MySQL호환), PostgreSQL Database 데이터베이스는 전자적으로 저장되고 체계적이고 구조화된 데이터 집합. 단어, 숫자, 이미지, 비디오 및 파일을 포함한 모든 유형의 데이터가 포함 DBMS (데이터베이스 관리 시스템) 라는 소프트웨어에 의해 제어됨. 컴퓨터 시스템에서 데이터베이스라는 단어는 모든 DBMS, 데이터베이스 시스템 또는 데이터베이스와 관련된 응용 프로그램을 나타낼 수도 있습니다. 특징 :..

[NC7기-58일차(7월17일)] - 웹프로그래밍 39일차

45. 자바 스레드풀 적용하기 - excuter 사용법 스레드는 런 끝나면 dead 상태로 가고 가비지가 되어 다시 불러올 수 없음. 가비지가 쌓여서 메모리 낭비, 생성하는 데에도 시간 걸리구 영,, 아님 스레드를 재활용하는 방법: 스레드를 멈추지 않게 만드는 것 ,,!! 일이 끝나면 대기 상태로 보내기. 대기일 때 셋팅하고 다시 깨우고. this.wait - 값 넣구 - notify sleep 은 일정 시간 지나면 알아서 깨어나고, wait는 notify로 깨워야함. 스레드가 running 상태에서 not runnable 상태로 보내는 거: sleep & wait 잠깐 멈춘 스레드를 리스트 컬렉션에 담았다가 꺼내는 거임 - 스레드풀 1. 스레드 풀 생성, ExecutorService executorSe..

[NC7기-57일차(7월14일)] - 웹프로그래밍 38일차

임계영역 delay(); 시간을 끄는거,, 끌다보면 다른 스레드가 가져갈거라 사용함. T1 , T2, T3 스레드는 서로 간섭하지 않구 갈 길 감. 중간에 add()를 호출하면,,, add 메서드안에서 cpu를 먼저 선점한 스레드가 시작하고 cpu 쟁탈전을 시작해서 작업시작. T1이 cpu 뺏겼다해서 T2와 T3만 경쟁하는게 아니라 T1까지 동등한 입장에서 경쟁 Thread: 실행흐름 add: 코드, 메서드 호출될땐 stack에 로컬변수 생성됨. 각 스레드 별로 stack를 갖고 있음. 자기 실행흐름 진행을 stack에 담고있음. 로컬변수는 따로 관리함. 인스턴스는 공유함. Critical Section = Critial Region (임계구역) void add(int value) { if(size >=..