Til

    [TIL] Java 조건문, 반복문, break, continue

    ✍ Today I Learned 예제 문제를 풀어보면서 제어문은 하나의 답이 아닌 여러 방향이 있다는 걸 또 한번 깨달았다. 항상 효율적인 방향이 무엇인지 고민하고 코드를 구현하자! 04 조건문과 반복문 04-1 조건문: if문, switch문 조건문의 종류 if문 조건식의 결과가 true, false이냐에 따라 실행문 결정 주로 else 블록과 함께 사용 switch문 변수의 값에 따라 실행문 결정 default는 생략 가능 break가 없다면 다음 case 연달아 실행 switch 연산은 char 타입, String 타입도 가능하다 중괄호 {} 블록 여러 개의 실행문을 하나로 묶기 위해 중괄호 {} 사용 조건식이 true가 될 때 실행해야 할 문장이 하나밖에 없다면 생략 가능 그러나 코드의 가독성을 ..

    [TIL] Java 연산자의 종류, 우선순위, 타입 변환

    ✍ Today I Learned 버벅거렸던 첫날에 비해 시간이 많이 단축되었다. 익숙해지는 중! 연산을 진행하면서 타입 변환이 되는 부분을 꼼꼼하게 숙지해보자. 03 연산자 03-1 연산자와 연산식 시작하기 전에 연산자(operator): 연산에 사용되는 표시나 기호 피연산자(operand): 연산자와 함께 연산되는 데이터 연산식(expression): 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것 연산식은 반드시 하나의 값을 산출하며, 값 대신에 연산식을 사용할 수 있다. 연산의 방향과 우선순위 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다. 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다. 단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽이다.(→) 복잡한..

    [TIL] Java 개발 환경 구축, 변수와 타입

    ✍ Today I Learned 항해99 시작! 💪 99일간의 여정 중, 첫 주는 pre-onboarding 기간으로 주특기가 될 언어의 문법을 팀원들과 공부한다. 기초적인 내용이지만, 그동안 알 것 같은 느낌만 있고 실제로 설명하긴 어려웠던 개념이나 정의를 다시 곱씹어 보려 한다! 내가 헷갈렸던 내용, 다시 보면 좋을 내용 위주로 정리해 보았다😉 01 자바 시작하기 01-1 프로그래밍 언어와 자바 시작하기 전에 기계어는 사람의 언어와 다르기 때문에 다리 역할의 프로그래밍 언어 필요 프로그래밍 언어로 작성한 파일 == 소스파일 소스파일은 컴퓨터가 바로 이해할 수 없기 때문에 컴파일 과정을 통해 기계어 파일로 번역한 후 컴퓨터에서 사용 자바의 특징 모든 운영체제에서 실행 가능 ex) 윈도우에서 개발된 프로..

    [TIL] Python 문자열 제거, pymongo 역정렬, MongoDB에 id 부여

    ✍ Today I Learned 2022.10.29 - [TIL] 웹의 동작 개념, CSS 모바일, DOMContentLoaded 웹개발 종합반 1주차 ~ 2주차 강의에 이어 3주차 ~ 4주차 강의를 듣고 정리한 내용이다. 사용 경험이 적은 언어(Python)와 데이터베이스(MongoDB)였지만 내가 알고 있는 것들과 비교해보는 재미가 있었다! 특정 문자열 대체, 제거 replace() string.replace(oldvalue, newvalue, count) 차례대로 찾을 값, 바꿀 값, 바꿀 횟수(옵션)를 입력하면 해당 string에서 특정 문자열을 대체한다. 문자열 및 공백 제거 strip() string.strip(characters) 인자로 전달받은 문자를 String의 왼쪽과 오른쪽에서 제거한..

    [TIL] 웹의 동작 개념, CSS 모바일, DOMContentLoaded

    ✍ Today I Learned 항해99를 본격적으로 시작하기에 앞서 사전에 제공되는 강의를 통해 워밍업을 해보려 한다. 다음 내용은 웹개발 종합반 1주차 ~ 2주차에 해당한다. 이전에 들었던 강의이기 때문에 다시 한번 짚고 넘어갔으면 하는 조각 지식 위주로 정리했다. 웹의 동작 개념 브라우저가 API에 요청을 보내고, 받은 HTML 파일을 받아서 그려준다. HTML만 받느냐? 데이터만 내려줄 때가 더 많다. → JSON형식 CSS 모바일 가로길이 설정 꿀팁 화면 폭 500px 전에는 95%로 맞추다가, 넘으면 500px으로 보여줘 라고 할 수 있다면? width: 95%; max-width: 500px; 이벤트 리스너는 죄가 없다 uncaught typeerror cannot read propertie..

    [TIL] 알고리즘 구간 합

    ✍ Today I Learned 구간 합 구간 합이란? 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘 합 배열 구하기 // 배열 A가 있을 때 합 배열 S의 정의 S[i] = A[0] + A[1] + A[2] + ... + A[i-1] + A[i] // A[0]부터 A[i]까지의 합 // 합 배열을 만드는 공식 S[i] = S[i-1] + A[i] 이렇게 합 배열을 미리 구해놓으면 기존 배열의 일정 범위의 합을 구하는 시간 복잡도가 O(N)에서 O(1)로 감소 구간 합 구하기 // 구간 합 구하는 공식 S[j] - S[i-1] // i에서 j까지 구간 합 // A[2] ~ A[5] 구간 합을 합 배열로 구하는 과정 S[5] = A[0] + A[1] + A[2] + A[..

    [TIL] JSP 댓글 기능 구현 (Comment)

    ✍ Today I Learned 댓글을 달 때마다 페이지가 리로딩된다면? 트래픽 양을 감당하기 힘들 것이다. 페이지를 이동하지 않고 자바스크립트 비동기 통신을 이용하여 댓글 기능을 구현해보자. 순서는 VO → mapper → DAO → Service → Controller → 화면단(view) 먼저 프로젝트를 분리하고 톰캣에 올라가 있는 프로젝트를 remove 해준다. [CommentVO.java] comment 테이블의 pk인 cno와 board 테이블의 pk인 bno는 long 타입으로 선언한다. 비동기 통신에서는 register 대신 post라는 단어를 주로 사용한다. post, list, modify 상황별 생성자를 만들고 getter, setter를 생성한다. (list의 상황에서는 전체 컬럼을..

    [TIL] JSP 웹페이지 만들기2 (Board)

    ✍ Today I Learned Member에 관한 기능을 모두 구현했으니 Board 기능을 구현할 차례! 여태까지는 프로세스 순서대로 구현했다면 이번엔 다음과 같이 백단부터 작성해보았다. DB → VO → Mapper → DAO → Service → Controller → JSP 뷰단을 가장 마지막에 출력하기 때문에 내가 어떤 파라미터를 던지고 어떤 결괏값을 받는지 잘 생각해야 한다. [BoardVO.java] register, list, modify, detail 상황별 생성자를 만들고 getter, setter를 생성한다. board 테이블의 pk인 bno는 long 타입으로 선언한다. [boardMapper.xml] mapper 패키지에 boardMapper.xml 파일을 생성하고, 먼저 dtd를..