분류 전체보기
-
오사카 여행기 - ③여행/해외여행 2020. 9. 28. 14:35
2017.10.26 정든 숙소(?)에서 체크 아웃을 하고, 일단 아침을 먹으러 나왔다. 친구들이랑 뭐 먹을까 고민하다가, 모스버거가 일본에서 유명한 프랜차이즈 햄버거라고 해서 먹으러 갔다. 한국의 맘스터치 같은 느낌인가... 하고 갔는데 어디쪽 모스버거 갔는지는 기억이 잘 안난다. 맛은 그냥 햄버거였다. 그저 그랬다. 근데 신기했던게 보통 버거집은 햄버거가 나오면 우리가 가져가는 구조인데 여기는 서빙을 해준다. 신세계... (나중에 한국에 있는 모스버거도 가봤는데 그랬던것 같다. 이 회사의 서비스인가) 햄버거를 먹으면서 다음 숙소를 어디서 묵을지 폰으로 열심히 검색했다. 친구들이랑 오사카 여행갔을 때 1일차 말고는 완전 무계획이라서 숙소도 예약안하고 왔다 ㅋㅋㅋ ... 그러다가 괜찮은 숙소를 찾아서 짐을..
-
[PHP] 게시판 만들기 - 관리자 기능 ②프로그래밍/PHP 2020. 9. 27. 20:28
관리자 기능을 본격적으로 구현해보도록 하겠습니다. 관리자 계정의 기능 요구사항은 다음과 같습니다. 1. 모든 게시판 글을 수정, 삭제할 수 있다. 2. 모든 댓글을 삭제할 수 있다. 게시글 관리 먼저 첫번째 요구사항을 구현해보도록 하겠습니다. 관리자는 모든 게시글을 관리할 수 있어야합니다. 즉, 내가 쓴 글이 아니라도, 비밀 글이라도 전부 읽기, 수정, 삭제가 가능해야합니다. list.php로 이동하여 관리자 계정일 때에는 비밀글의 비밀번호를 모르더라도 바로 해당 게시글을 읽을 수 있도록 구현해보도록 하겠습니다.
-
[PHP] 게시판 만들기 - 관리자 기능 ①프로그래밍/PHP 2020. 9. 25. 23:17
여태까지의 실습을 통해 게시판에 필요한 대부분의 기능들을 구현해보았습니다. 실습을 끝내려다가, 완성된 게시판을 관리할 수 있는 관리자 기능을 추가하면 좋겠다고 생각하여, 번외로 이번 실습을 진행해볼까합니다. 관리자 계정으로 할 수 있는 기능 요구사항은 다음과 같습니다. 1. 모든 회원의 정보를 수정, 삭제할 수 있다. (DB구조를 모두 엎어야해서 시간관계상 생략 하겠습니다;;) 2. 모든 게시판 글을 수정, 삭제할 수 있다. 3. 모든 댓글을 삭제할 수 있다. 먼저 DB 구조를 조금 수정해보도록 하겠습니다. 127.0.0.1/phpmyadmin에 접속한 후 현재 프로젝트에서 사용하고 있는 DB에 들어가 user 테이블을 클릭한 후, SQL 클릭, 아래와 같이 SQL 쿼리를 작성한 후, Ctrl Enter..
-
데이터베이스 격리수준Computer Science/데이터베이스 2020. 9. 24. 01:16
격리수준이란? 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것 특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것 Oracle 트랜잭션 A가 시작된 후 update 쿼리를 날린다. 이 타이밍에 트랜잭션 B도 시작되고 select 쿼리를 날린다. 이때 트랜잭션 B의 select 쿼리의 결과는 장보고가 아닌 임꺽정이 나온다. (변경이 적용 안됨) 왜냐하면 Oracle은 데이터를 읽을 때 커밋된 것만 읽는다. (Read Commit) 트랜잭션이 종료되어 commit을 날리기 전까지 select 결과는 위와 같다. commit이 된 후 트랜잭션 B에서 select 쿼리를 날리면 드디어 장보고가 나온다. Oracle에서 데이터의 C..
-
[JavaScript] Ajax를 사용하는 이유WEB/JavaScript 2020. 9. 22. 17:41
1. 요청에 대한 응답을 Html이 아닌 Data(JSON)으로 받기 위해서 고객이 사용하는 클라이언트는 크게 2가지로 웹과 앱이 있으며, 일반적으로 서버로부터 응답받을 때 웹은 HTML 파일을 받고 앱은 데이터(JSON)를 받는다. 이것은 서버를 이원화하여 구축한 것을 의미하며 이때 '서버를 통합하여 각각의 클라이언트에게 응답해줄 순 없을까?'라는 의문점에서 고안된 방법이 Ajax 통신이다. Ajax 통신을 사용하면 웹은 서버로부터 데이터(JSON)를 리턴 받을 수 있으며 그렇게 되면 서버의 분리 필요 없이 하나의 서버로 각각의 클라이언트 요청을 받아 응답해줄 수 있게 된다. 대신 웹 클라이언트는 추가적인 요청을 통해 HTML 파일을 받아야 한다. 2. 비동기 통신을 하기 위해서 비동기란 순서에 상관없..
-
[C/C++] STL Map, Set, Multiset 사용법프로그래밍/C,C++ 2020. 9. 22. 16:39
Map 인덱스로 다양한 자료형을 사용할 수 있음 key-value가 한쌍인 트리 구조 (레드 블랙 트리로 구현되어있음) key는 중복 허용을 하지 않음 key를 기준으로 정렬된 상태이기 때문에 검색 속도가 빠른 게 장점 key-value를 같이 쓰면서, 검색을 빨리해야 하는 경우 사용 /* STL Map 사용법 */ #include #include using namespace std; int main(void) { map M; // Map 선언 map::iterator it; // iterator를 통해 Map에 접근 M['A']=3; // key : A - value : 3 M['A']=5; // key는 중복허용이 안된다! 따라서 key 'A'의 value가 5로 갱신 M['B']=2; M.inser..
-
[C/C++] STL Stack, Queue 사용법프로그래밍/C,C++ 2020. 9. 22. 15:49
1. 스택(Stack) 선입후출, FILO(First In Last Out) DFS에서 많이 사용됨(실행순서를 기록해야할 때 등) /* STL Stack 사용법 */ #include #include // 반드시 선언 using namespace std; int main(void){ stack S; // 스택 선언 S.push(10); // 스택 값 push S.push(-3); S.push(15); printf("%d\n",S.top()); // 스택 맨 위의 값 리턴 : 15 printf("%d\n",S.size()); // 스택의 크기(원소의 개수) 리턴 while(!S.empty()) { // 스택이 비어있는지 확인 S.pop(); // 스택 값 pop } } ※ Stack이 비어있는데 top() ..
-
[Spring] 스프링 부트 동작 원리WEB/Spring 2020. 9. 15. 13:06
1. 내장 톰캣 톰켓을 따로 설치할 필요 없이 바로 실행가능하다. A와 B가 서로 메세지를 주고 받기 위해서는 OS에서 제공하는 소켓이 필요하다. 예를들어 A가 5000번 포트번호로 최초의 연결 용도로 소켓을 오픈한다. B가 A의 IP주소와 포트번호를 통해 5000번 포트에 연결을 성공하면, 무작위 포트 번호로 새로운 소켓을 만들고, 5000번 포트는 연결이 끊긴다. 이때 5000번 포트로 다른 사용자의 연결 요청을 계속 받기 위해서 새로운 포트와의 통신을 다중 스레드를 이용한다. 소켓 통신의 장점은 연결이 끊어지지 않는다는 점, 단점은 그 때문에 연결이 늘어날수록 부하가 크다는 점 HTTP 통신은 요청과 응답이 이루어지면 바로 연결을 끊어버리기 때문에 부하가 적다는 장점이 있지만, 연결을 끊어버리기 때..