목록전체 글 (310)
가오리의 코딩일기
🔗 제어문(control flow statement) → 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용 → 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어 → forEach, map, filter, reduce 같은 고차 함수를 사용한 함수형 프로그래밍 기법에서는 제어문의 사용을 억제하여 복잡성을 해결하려고 노력한다 💡 블록문(block/compound statement) → 0개 이상의 문을 중괄호로 묶는 것 → 자바스크립트는 블록문을 하나의 실행 단위로 취급한다 → 단독으로 사용할 수 있으나 일반적으로 제어문이나 함수를 정의 시 사용 → 자체 종결성(문의 종료)을 갖기 때문에 블록문의 끝에는 세미콜론을 붙이지 않는다 💡 조건문(conditional statement) → 조건식의 평가..
→ nCr = n!/(n-r)!r! → 2의 지수 = n!의 2의 지수 - (n-r)!의 2의 지수 - r!의 2의 지수 → 5의 지수 = n!의 5의 지수 - (n-r)!의 5의 지수 - r!의 5의 지수 → 2의 지수와 5의 지수 중 작은 값을 고르면 된다 n, m = map(int, input().split()) def twoCount(n): result2 = 0 while n != 0: n = n//2 result2 += n return result2 def fiveCount(n): result5 = 0 while n != 0: n = n//5 result5 += n return result5 print(min(twoCount(n)-twoCount(n-m)-twoCount(m), fiveCount..
🧩 MVC 패턴이란? → 디자인 패턴 중 하나 → 프로그램이나 어떤 특정한 것을 개발할 때 발생했던 문제점을 정리해서 상황에 따라 적용해서 쓸 수 잇는 것을 특정 규약을 통해 쉽게 쓸 수 있는 형태로 만든 것, 간단히 말해 소프트웨어 개발 방법을 공식화한 것 🧩 모델1 → 뷰와 로직을 모두 JSP 페이지 하나에서 처리하는 구조 → 화면의 사진처럼 JSP와 자바빈(혹은 서비스 클래스)으로 나눌 수 있다 → JSP 페이지에서 로직 처리를 위한 자바코드와 출력을 위한 코드가 함께 섞여서 삽입된다 → 브라우저에서 요청이 들어오면 JSP는 자신이 직접, 자바빈을 이용해서 작업을 처리, 처리한 정보를 클라이언트에 출력 → 구조가 굉장히 단순하기 때문에 익히기 쉽고 숙련된 개발자가 아니더라도 구현이 용이하다 → 출력..
🧩 논리 연산자 Q1. 다음 OR 연산의 결과는 무엇일까요? alert(null || 2 || undefined); → alert 창에 2 Q2. OR 연산자의 피연산자가 alert라면? alert( alert(1) || 2 || alert(3) ); → alert 창에 1, 2 Q3. 다음 AND 연산의 결과는 무엇일까요? alert( 1 && null && 2 ); → alert 창에 null Q4. AND 연산자의 피연산자가 alert라면? alert( alert(1) && alert(2) ); → alert 창에 1, undefined Q5. OR AND OR 연산자로 구성된 표현식 alert( null || 2 && 3 || 4 ); → alert 창에 3 → &&가 ||보다 우선순위가 높다 Q..
🧩 프로젝트 시작하기 → python3 —version : 파이썬 버전 확인 3.xx 이면 됨 → python3 -m venv myvenv : 가상환경 myvenv 생성 →source myvenv/bin/activate : myvenv 활성화 → pip install django~=3.2.10 : 장고 설치 → django-admin startproject myweb . : 프로젝트 만들기 ⇒ myweb 폴더, manage.py 파일 → python manage.py startapp photo: 앱 추가 → python manage.py runserver : 프로젝트 실행, 종료 시 control+C 🧩 프로젝트와 앱 → 프로젝트 : 어떤 하나의 큰 서비스, 우리가 만들 웹 사이트 → 앱 : 프로젝트 내..
🧩 기본 연산자와 수학 Q1. 전위형과 후위형 let a = 1, b = 1; let c = ++a; let d = b++; → a = 2, b =2, c =2, d = 1 Q2. 할당 후 결과 예측하기 let e = 2; let x = 1 + (e *= 2); → e = 4, x = 5 Q3. 형변환 "" + 1 + 0; // "10" "" - 1 + 0; // -1 true + false; // 1 6 / "3"; // 2 "2" * "3"; // 6 4 + 5 + "px"; // "9px" "$" + 4 + 5; // "$45" "4" - 2; // 2 "4px" - 2; // NaN 7 / 0; // Infinity " -9 " + 5; // -9 5 " -9 " - 5; // -14 null +..
→ 연산자 : 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산을 수행해 하나의 값을 만든다 → 피연산자 : 연산의 대상, "값" 🧩 산술 연산자(arthmenc operator) → 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다 → 산술 연산이 불가능한 경우 NaN(Not a Number) 🧩 이항 산술 연산자 → 부수효과가 없다 + 할당연산자, 증가/감소 연산자 등 일부 연산자는 다른 코드에 영향을 주는 효과 → 어떤 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없다 🧩 단항 산술 연산자 → 증가/감소 연산자, 부수 효과가 있다 → 전위 증가/감소 연산자 : 먼저 피연산자의 값 증가, 감소 → 후위 증가/감소 연산자 : 나중에 피연산자의 값 증가, 감..
https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(seoul): for i in range(len(seoul)) : if seoul[i] == "Kim" : result = i # return('김서방은 ' + str(result) + '에 있다') return(f'김서방은 {result}에 있다')
💡 웹 개발 기초 개념 ✏️ 웹 개발이란 → 프론트엔드에서는 각종 기능들을 구현한다 → 데이터 처리에 대한 기능을 제외한 거의 대부분의 기능 → 사용자와 상호작용할 수 있는 다양한 기능들을 프론트엔드에서 구현한다 → 백엔드에서는 데이터 처리에 관한 모든 기능을 수행한다 → 데이터베이스와 연동되어 저장된 데이터를 찾아주거나 수정, 삭제할 수 있는 기능을 가진다 → 로그인/회원가입에 대한 요청을 받아 처리, 게시판에 글 작성, 내 피드에 글을 나타나게 하는 작업 등의 기능 → 프론트엔드가 백엔드에게 직접 데이터 요청, 요청받은 백엔드는 프론트엔드에게 해당 요청에 맞는 응답 → 응답 결과로는 프론트엔드가 필요로 했던 데이터나 에러 메시지 ✏️ 프론트엔드와 백엔드 → 프론트엔드 : 사용자가 접하고 경험하는, 웹..
✏️ justify-content → 메인 축 방향 결정 → flex-start : 요소들을 컨테이너의 왼쪽으로 정렬 → felx-end : 요소들을 컨테이너의 오른쪽으로 정렬 → center : 요소들을 컨테이너의 가운데로 정렬 → space-between : 요소들 사이에 동일한 간격을 둔다 → space-around : 요소들 주위에 동일한 간격을 둔다 ✏️ flex-direction → 아이템들이 배치되는 축의 방향(가로|세로) → row : 요소들을 텍스트의 방향과 동일하게 정렬 → row-reverse : 요소들을 텍스트의 반대 방향으로 정렬 → column : 요소들을 위에서 아래로 정렬 → column-reverse : 요소들을 아래에서 위로 정렬 ✏️ flex-wrap → 줄넘김 처리 설..