제 4강 변수의 종류와 유효범위 1) 지역변수 - 함수/블록 안에서 선언하는 변수 - 함수/블록의 종료와 함께 메모리상에서 소멸 - 초기값이 없으면 쓰레기 값이 들어감 - 스택 영역에 저장됨 void main(){ // 메인 블럭 if(1){ int num1 = 10; // 지역 변수 선언 printf("%d", num1); // 10 출력 } // num1 사라짐 printf("%d", num1); // num1 없으니 오류 } 2) 전역변수 - 함수 블록 밖에서 선언하며 전체 함수에 영향을 미친다 - 프로그램이 종료될 때 메모리상에서 소멸 - 초기값이 없으면 0값이 들어감 - 데이터 영역에 저장됨 int num1; // 전역변수 num1 선언 void main(){ num1 = 10; printf("..
제 1강 프로그래밍이란? 1) 프로그램 동작 과정 선언 -> 입력 -> 처리 -> 출력 [문1] 두 사람의 나이를 입력 받고, 그 합을 구하는 c 프로그램 작성 Int age1, age2, result printf("철수와 영희의 나이를 입력하세요:"); Scanf("%d %d", &age1, &age2); result = age1 + age2; printf("나이의 합은 %d살입니다. \n", result); [예1] 아침에 비가 오면 우산을 가져가고, 비가 오지 않으면 자전거를 타고 간다 Int 자전거, 우산; If(날씨 == "비") { printf("우산"); } Else { printf("자전거"); } 제 2강 컴파일러, 인터프리터 1) 컴파일이란? 인간이 만든 고급언어를 컴퓨터가 해석할 수 ..
* Servlet Container - 서블릿을 관리해 주는 컨테이너 (서블릿: 어떤 역할을 수행하는 정의서, 서블릿 컨테이너: 정의서를 보고 수행) - 클라이언트의 요청을 받아주고 응답할 수 있게 웹서버와 소켓을 만들어 통신 (ex. 톰캣) * Servlet Container 역할 1. 웹 서버와의 통신 지원 서블릿과 웹 서버가 손쉽게 통신할 수 있게 함 일반적으로 소켓을 만들고 listen, accept 등을 해야 하지만, 서블릿 컨테이너는 이러한 기능을 API로 제공하여 복잡한 과정 생략하게 함 2. 서블릿 생명주기(Life Cycle) 관리 서블릿 클래스를
* Get과 Post 방식의 비교/차이 - 클라이언트가 서버로 요청을 보내는 방법 1. GET 방식: (데이터를) 가져오다, 얻어오다 - URL에 변수(데이터)를 포함시켜 요청 - 보안 유지를 안 하기 때문에 로그인 같은 경우는 get 방식으로 하면 부적합하다 - 데이터를 HTTP Header에 포함하여 전송 - GET 방식에서 바디는 보통 빈 상태로 전송되며 헤더의 내용 중 Body의 데이터를 설명하는 Content-type 헤더 필드도 들어가지 않음 - 전송하는 길이 제한 (보내는 길이가 너무 길면 초과 데이터는 절단됨) - 캐싱 가능(ex. 즐겨찾기, 북마크): 한번 접근 후, 또 요청할 시에 빠르게 접근하기 위해 데이터를 저장시켜 놓는 것 2. POST 방식: (데이터를) 부치다 - 데이터를 서버..
* Servlet이란? - 웹 서비스를 위한 자바 클래스 - 자바를 이용하여 웹을 만들기 위해 필요한 기술 - 웹 프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송(응답)하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술 ex) 사용자가 로그인을 하려고 할 때 아이디와 비밀번호를 입력하고 로그인 버튼을 누르면 서버는 아이디와 비밀번호를 확인하고 다음 페이지를 띄워주는 역할 수행 - 즉, Servlet은 자바 애플리케이션 코딩을 하듯 웹 브라우저용 출력 화면을 만드는 방법 * Servlet 특징 - 클라이언트의 요청에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트 - HTML을 사용하여 요청에 응답 - java thread를 이용하여 동작 - mvc 패턴에서 ..
git commit까지 되는 걸 확인해 줬는데 push가 안 돼서 이유 찾기 시작 . . . $ git log --branches --not --remotes 일단 위와 같이 입력해 주면 원격 저장소에 push가 안 된 commit건을 보여 준다 이렇게 보여 준다 근데 생각해 보니까 main branch에 commit을 해 줬는데 첫 번째 줄 보면 전에 삭제한 master로 되어 있어서 branch를 변경해 주었다 $ git branch -M main 나는 이렇게 변경해 주었는데 구글링해 보니까 switch 명령어를 사용해 바꾸는 게 더 맞는 것 같다 $ git switch main 위와 같이... git hub를 처음부터 차근차근 배우고 쓴 게 아니라 정리해야 될 게 많을 것 같다
default 변경하는 법 1. branch default를 변경해 주기 위해 위 캡처에서 형광펜으로 칠한 Setting을 들어간다 2. 왼쪽 메뉴바에 있는 Branches에서 default를 변경해 줄 수 있다 branch 삭제하는 법 $ git push hj --delete master 위와 같이 git bash에 입력하면 hj라고 저장된 원격 저장소에서 master branch를 삭제해 준다 결과적으로 이렇게 main이라는 branch 하나만 존재하는 모습을 볼 수 있다~!
$ git push -u origin master To https://github.com/cremecoc/javaExample.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/내깃허브닉넴/javaExample.git' 레퍼지토리를 나누어 주고 싶어서 새로운 파일에서 push 했더니 새롭게 생성한 레퍼지토리와 연결이 안 되어 위와 같은 오류가 떴다 해결 방법 1. 새롭게 생성한 레퍼지토리를 추가해 준다 $ git remote add hj https://github.com/내깃헙닉넴/HTML.git 2. 1번에서 등록한 레퍼지토리에 push해 준다 $ git push -u ..
처음에는 주석 처리한 것처럼 공유 버튼을 눌러서 url을 복사한 다음 src에 넣어 줬다 그랬더니 이렇게 유튜브에서 연결을 거부했다는 연결이 떠서 찾아보니 유튜브 영상에 마우스 우측 버튼을 클릭한 뒤 밑줄친 소스 코드 복사를 이용해 가져와야 됐던 것이다! 이렇게 소스코드를 복사하면 보이는 것과 같이 잘 뜨는 모습을 볼 수 있다!
2장. 데이터 모델과 성능 성능 데이터 모델링: DB 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인 구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무 비용을 최소화할 수 있는 기회를 가지게 된다. 데이터의 증가가 빠를수록 성능 저하에 따른 성능 개선 비용은 기하급수적으로 증가하게 된다 성능 데이터 모델링 고려사항 순서 1. 데이터 모델링을 할 때 정규화를 정확하게 수행 2. DB 용량 산정을 수행 3. DB에 발생되는 트랜잭션의 유형을 파악 4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행 5..