목록전체 글 (88)
hi jaeneee

주임님께서 회사 플로우차트를 앞에서 발표해 보라고 하셨다. 플로우차트가 뭔지부터 알아보자,,!! Flow : 흐름 Chart : 자료 Flow + Chart : 순서도 / 흐름도 => 어떤 일을 처리하기 위한 과정을 도식화한 것 -> ISO(International Standardization Organization, 국제표준기구)에서 정한 기호와 흐름선을 활용 https://www.tcpschool.com/codingmath/flowchart 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com Tip) Keep it Simple 1) 일관된 디자인 사용 2) 모든 프로세스를 한 페이지에 넣기 3) 왼쪽에서 오른쪽으로, ..

https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 $-1$ 출력한다. www.acmicpc.net 1) 문제 2) 예시 3) 제출 import sys input = sys.stdin.readline t = int(input()) answer = [] for i in range(0, t): x1, y1, r1, x2, y2, r2 = map(int, input().split()) distance = ((abs(x2 - x1))**2 + abs((y2 - y1))**2)**(1/2) if distance == 0: if r1 == r2: answe..

https://www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net 1) 문제 2) 예시 3) 제출 import sys input = sys.stdin.readline n = int(input()) difficulty = [] for i in range(0, n): a = int(input()) difficulty.append(a) difficulty.sort() exceptNum = round(n * 0.15 + 0.000000001..
DB 명명 규칙이 중요한 이유(Chat GPT 참고!) 1. 가독성 및 이해성 : 데이터베이스 구조와 개체 간의 관계를 쉽게 이해할 수 있음 -> 유지 보수 및 협업 수행에 도움 2. 충돌 방지 : DB 개체의 이름 충돌을 방지할 수 있음 -> 개체를 유일하게 식별할 수 있음 3. 일관성 : 일관되고 일련성을 갖게됨 -> 오류 발생 가능성 줄임 4. 표준 준수 : 특정 DBMS나 개발 프레임워크에서는 명명규칙을 제공함 -> 해당 시스템 또는 프레임워크와 호환성 보장 DB 명명 규칙 1. 따옴표 사용X 2. 공백 포함X 3. 소문자 작성 4. 데이터 타입의 이름 사용X ex : text, timestamp -> (X) 5. 단어 사이는 '_'로 구분(Snake case) ex : ashsilver -> a..
https://hbase.tistory.com/169 [Java] 자바 어노테이션(Annotation) 사용법 및 예제 - 커스텀 어노테이션 만들기 스프링 프레임워크 기반의 작업을 많이 하는 개발자라면 '어노테이션(Annotation)'을 자주 사용할 것이다. (어노테이션, 애너테이션 등으로 발음하지만 본 포스트에서는 어노테이션으로 명명하겠 hbase.tistory.com Annotation : 주석 자바의 어노테이션 : 소스코드에 추가해서 사용할 수 있는 메타 데이터일종 (기능) 1. 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보 제공 2. 소프트웨어 개발 환경이 빌드나 배포시 코드를 자동으로 생성할 수 있도록 정보 제공 3. 런타임에 특정 기능을 실행하도록 정보 제공 @Controller : 해..

5/25 공부할 수 있는 시간 약 4시간 목표 : - 파일 생성하고 git 연동하고 확인하기 - 웹 사이트 프로젝트 진행 과정 알아보기 GIT 연동 완료! 느낀점 : - 트렐로로 일정을 구체화하자 - 노션에 내가 어떻게 진행되고 있는지 공유하자 다음 목표 : - 간트표 짜기 - API 구성 짜기

블로그를 만들어보려했는데 친한 오빠가 라고 해서,,, 뭔지부터 알아보기로 했다,,!! Maven? : 자바용 프로젝트 관리도구 -> apache ant의 대안 -> 프로젝트의 전체적인 라이프 사이클을 관리하는 도구 (특징) - 필요한 라이브러리를 특정 문서에 정의해 놓으면, 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운받아줌 - 중앙 저장소(라이브러리를 공유하는 파일 서버)를 통한 자동 의존성 관리 - 간단한 설정을 통한 배포 관리 가능 - 전체적인 라이프사이클을 관리하는 도구 (lifecycle) clean -> validate -> compile -> test -> package -> verify -> install -> site -> deploy ..
나를 한 사이트로 설명할 수 있다는게 멋있어보여서 한 번 서버도 열어서 만들어보고 싶다는 생각을 했다! 넣을 기능 - 내 포트폴리오 보이기(MAIN) 1. About Me 2. Skills 3. archiving 4. projects 5. study - 내 일기(CRUD 기능) + 가능하면 댓글 기능 구현하기 위해 로그인까지 할 예정! + 비밀번호 걸기(비밀 댓글 느낌!) - Contact : 나와 연락할 수 있는 방법 ~ 5/28(일요일)까지 메인 페이지 디자인 레이아웃 만들기 및 파일 생성하기
https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/ HTTP와 HTTPS - 전송 프로토콜 비교 - AWS 1996~1997년에 출시된 최초의 HTTP 버전이 HTTP/1.1입니다. HTTP/2와 HTTP/3은 프로토콜 자체를 업그레이드한 버전입니다. 데이터 전송 시스템을 수정하면서 효율성을 개선했습니다. 예를 들어, HTTP/2는 텍 aws.amazon.com HTTP(Hypertext Transfer Protocol) : 클라이언트와 서버 간의 통신을 위한 규칙, 프로토콜 -> 암호화되지 않은 데이터 전송(브라우저에서 전송된 정보를 제 3자가 가로채고 읽을 수 있음) 기본 포트 : 80 -> 이전 텍스트 기반 웹 사이트 H..
객체 지향 프로그래밍이란? 객체 지향 프로그래밍 = Object Oriented Programming : 프로그램 구현에 필요한 객체를 파악하고 각각 객체들의 역할이 무엇인지 정의 -> 상호작용을 통해 프로그램을 만드는 것 : 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급해 객체 내부에 선언된 메서드를 활용하는 방식 http://www.incodom.kr/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5 생물정보 전문위키, 인코덤 Wikipedia for Bioinformatics www.incodom.kr 절차 지향 vs 객체 지향 절차 지향 : 프로그램을 기능 중심으로 바라봄 => 어떤 기능을 어떤 순서로 처리? -> 소형 프로그래밍 적합 (작은 기능 수반)..
http://www.tcpschool.com/php/php_intro_intro 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com PHP(Hypertext Preprocessor) : C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어 (특징) -> 동적 웹 페이지를 쉽고 빠르게 만들 수 있음 -> PHP 코드를 HTML에 추가하면 동적 웹 페이지 생성 가능 -> 주요 OS와 대부분 웹 서버에서 지원 -> 직관적인 코드 작성 가능 -> 작성해야 하는 코드의 양이 적음 -> 텍스트 처리에 특화 => HTML 문서 처리에 적합 (출처 : https://velog.io/@uvula6921/%EB%8F%..
IoT(Internet of Things) : 인터넷에 무선으로 연결될 수 있는 물체 아두이노 : 오픈 소스를 기반으로 한 마이크로컨트롤러 보드 IoT의 기술적 요소 (출처 : https://m.blog.naver.com/imbin_/221584960294) -> 센서가 탑재된 다양한 디바이스들을 통한 정보 수집 -> 직/간접적으로 연결된 네트워크를 통한 정보 송수신 -> 빅데이터 분석을 위한 클라우드 컴퓨팅 -> 센서에서 수집한 빅데이터 분석
아두이노 : 오픈 소스를 기반으로 한 단일 보드 마이크로 컨트롤러로 완성된 보드와 관련 개발 도구 및 환경 https://ko.wikipedia.org/wiki/%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8 아두이노 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 아두이노(이탈리아어: Arduino 아르두이노[*])는 오픈 소스를 기반으로 한 단일 보드 마이크로컨트롤러로 완성된 보드(상품)와 관련 개발 도구 및 환경을 말한다. ko.wikipedia.org 아두이노 쉴드 : 아두이노와 결합 가능한 모듈 => 성능 확장 위한 하드웨어 -> 핀 결합을 통해 전선 복잡X 와이파이 쉴드 : 무선으로 네트워크에 접속/제어할 수 있도록 해주는 하드웨어 아두이노 쉴드 종류 비..

https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 1) 문제 문제가 기니까 생략! 2) 예시 3) 제출 import sys input = sys.stdin.readline n, m = map(int, input().split()) li = dict() answer = "" for i in range(1, n + 1): pocketmon = input().rstrip() li[pocketmon] = i li[i] = p..

스터디 오빠가 면접 가서 "MSA가 뭔가요?"라는 질문을 받았다고 했다. 내가 아는 건 MMA 밖에 없어서 한 번 알아보기로 했다! MSA란? MicroService Architecture : 작고 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크 Monolithic : 기존에 우리가 사용하던 전통적 방식의 개발 방식 => 한 덩어리의 구조(단일 시스템) -> 전체 애플리케이션이 하나로 됨 https://youtu.be/dSGnJWHuxtQ why MSA? (특징) 1. 복잡도↑ 2. 비용↑ -> API 호출 ↑ -> 서버의 자원 사용량↑ 3. 부분 장애가 전체 서비스 장애로의 확대를 막음 4. 부분적인 작업이 가능함 5. 약한 결합도로 서비스 변경이 보다 쉬움 6. 유지 보수 시..
디자인 패턴 : 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약'형태로 만들어 놓은 것 : 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴 => "Don't reinvent the wheel" -> 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다 GoF(Gang of Four) 디자인 패턴 -> 4인방 디자인 패턴(4명이 만듦) 디자인 패턴의 분류 생성(creational) 패턴 : 객체 인스턴스를 생성하는 패턴 추상팩토리 빌더 팩토리 메서드 포로토타입 싱글톤 구조(structural) 패턴 : 클래스와 객체를 더 큰 구조로 만들 수 있게 구성 사용 어댑터 브리지 컴퍼지트 데커레이터 퍼사드 플라이웨이트 프록시 행위..
https://nearhome.tistory.com/22 [2019 국가 교육기관 코딩 테스트] 큰 수의 법칙 (파이썬) 문제 철수의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과 nearhome.tistory.com import sys input = sys.stdin.readline n, m, k = map(int, input().split()) li = list(map(int, input().split())) li.sort(reverse=True) i = 0 answer = 0 max = 0 while i < m: for g in range(0, k): answer ..
그리디 알고리즘(탐욕법) : 단순 무식하게, 탐욕적으로 문제를 푸는 알고리즘 : 현재 상황(각 단계)에서 지금 당장 좋은 것만 고르는 방법 (특징) -> 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형
http://www.incodom.kr/%ED%85%8C%EC%8A%A4%ED%8A%B8_%EC%A3%BC%EB%8F%84_%EA%B0%9C%EB%B0%9C 생물정보 전문위키, 인코덤 Wikipedia for Bioinformatics www.incodom.kr 테스트 주도 개발 : 선 테스트 후 개발 방식 프로그래밍 방법 TDD 개발 방법 1. 테스트 케이스 작성 2. 테스트 케이스 통과 코드 작성 3. 리팩토링 TDD 장점 1. 객체 지향 코드 개발 -> 객체 지향 프로그래밍의 특징 발생! (객체지향프로그래밍 특징 -> 추상화, 캡슐화, 상속성, 다형성) 2. 수정 시간 단축 -> 테스트 케이스 관련 코드로 어디서 오류가 발생했는지, 어떤 오류가 발생했는지 알 수 있기 때문 3. 리팩토링/유지보수 용..

https://www.acmicpc.net/problem/10162 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net 1) 문제 2) 예시 3) 제출 import sys input = sys.stdin.readline microwave = [300, 60, 10] t = int(input()) if t % 10 == 0: answer = list() for i in microwave: tmp = (t // i) t -= i * tmp answer.append(tmp) for i in answer: pri..

https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 1) 문제 2) 예시 3) 제출 import sys import heapq input = sys.stdin.readline n = int(input()) answer = 0 card = [] for i in range(0, n): heapq.heappush(card, int(input())) while len(card) > 1: tmp = heapq.heappop(card) tmp ..

4장 : 전자 회로 공작에 도전 1. 전자 회로 공작의 기본 지식 신호 : 일정한 부호나 표지, 소리, 몸짓 따위를 사용해 특정한 내용이나 정보를 전달하거나 지시함 아날로그 신호 vs 디지털 신호 아날로그 신호 : 곡선의 형태로 정보 전달 디지털 신호 : 1과 0으로 정보 전달 옴의 법칙 : 도체 두 지점 사이에 나타나는 전위차에 의해 흐르는 전류가 일정함 https://ko.wikipedia.org/wiki/%EC%98%B4%EC%9D%98_%EB%B2%95%EC%B9%99 옴의 법칙 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 옴의 법칙에서 V,I 그리고 R. 옴의 법칙(Ohm's law)은 도체의 두 지점사이에 나타나는 전위차(전압)에 의해 흐르는 전류가 일정한 법칙에 따르..
3장 : 파이썬 기본 지식 1. 파이썬이란? https://namu.wiki/w/Python Python - 나무위키 Python은 프로그래머가 곧 자기가 만든 프로그램의 이용자를 가정하기 때문에(Python은 처음부터 교육용 언어로 주로 쓰였다.), 긴 역사에도 불구하고 일반 사용자에게 배포를 하는 과정이 덜 발달 namu.wiki 1) 1991년에 발표된 인터프리터 방식의 프로그래밍 언어 (인터프리터 : 실행 시마다 소스 코드를 한 줄씩 기계어로 번역하는 방식) https://namu.wiki/w/%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0 인터프리터 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 ..

https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 1) 문제 2) 예시 3) 제출 import sys input = sys.stdin.readline n = list(map(int, input().rstrip())) answer = "" if 0 not in n: answer = "-1" elif sum(n) % 3 != 0: answer = "-1" else: n.sort(reverse=True) for i in n: answer += str(i..
2장 운영체제(라즈비안) 설치와 사용 방법 1. 라즈베리 파이에서 사용할 수 있는 운영체제 - raspbian(라즈비안) : 라즈베리 파이 표준 배포판, 프로그래밍 언어 학습용 sw 충실 - ubuntu MATE(우분투 마테) : 라즈베리 파이에 적합하도록 최적화 - Snappy Ubuntu Core(스나피 우분투 코어) : IoT에 의식한 릴리스 2. 라즈비안 설치 방법 NOOBS(New Out Of Box Software) : 라즈베리 파이를 위한 쉬운 OS 설치 관리자 1) NOOBS 사용 방법(추천) -> 인터넷에 접속하지 않고도 설치할 수 있음 2) NOOBS Lite 사용 방법 -> NOOBS를 실행하고 배포판을 라즈베리 파이에 직접 내려받아 설치 -> 유선으로 인터넷에 접속 필요 3) 라즈비..
1장 라즈베리파이 + 파이썬 + 전자 회로 공작으로 컴퓨터와 친해지기 1. 라즈베리 파이, 파이썬, 전자 회로 공작 라즈베리 파이 : 초소형/초저가의 컴퓨터 https://namu.wiki/w/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%20%ED%8C%8C%EC%9D%B4(%EC%BB%B4%ED%93%A8%ED%84%B0) 라즈베리 파이(컴퓨터) - 나무위키 크게 염가형 모델인 A와 B, 그리고 일정 기간 뒤에 성능이나 기능을 개선해 출시하는 + 모델들과 이에 속하지 않는 제로와 컴퓨트 모듈 등으로 나뉜다. 저장장치, 전원, USB, 케이스, 모니터, 사운 namu.wiki 아두이노 : 간단한 초소형 기판에 다양한 기능을 할 수 있도록 프로그래밍해 활용 https://namu.wi..

https://namu.wiki/w/%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC 프레임워크 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권 namu.wiki 프레임워크 : 소프트웨어 개발의 뼈대 : 어떤 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조 : 공통으로 사용될 수 있는 특정한 기능들을 모듈화 프레임워크 종류 spring : java의 웹 프레임워크 django : python의 웹 프레임워크 laravel : php의 웹 프레임워크 프레임워크 vs 라이브러리 프레임워..

https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC_(%EC%BB%B4%ED%93%A8%ED%8C%85) 라이브러리 (컴퓨팅) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. Ogg Vorbis 파일을 재생하기 위해 libvorbisfile을 사용하는 응용 프로그램의 개요도. 라이브러리(영어: library)는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사 ko.wikipedia.org 라이브러리 : 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임 : 공통으로 사용될 수 있는 특정한 기능들을 모듈화 -> 가져다 쓸 책의 집합 ex) 라면 끓이기 코딩하기! 1. 라면 끓일 냄..

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 1) 문제 2) 예시 3) 제출 import sys input = sys.stdin.readline sentence = input().rstrip() answer = 0 plusSen = sentence.split("-") for i in range(0, len(plusSen)): tmpSum = 0 tmpLi = plusSen[i].split("+") for k in tmpLi: tmpSu..
Database : 데이터의 집합 SQL (Structured Query Language) : 데이터를 관리하기 위해 설계된 프로그래밍 언어 스키마 : DB를 구성하는 개체, 속성, 관계 및 제약 조건 등을 정의한 메타 데이터 집합 DBMS (DataBase Management System) -> 데이터베이스 관리 소프트웨어 RDBMS (Relational DataBase Management System) : 관계형 데이터 베이스 -> 모든 데이터를 2차원 테이블로 표현 -> 정해진 스키마에 따라 데이터 저장 -> 명확한 데이터 구조 -> 테이블과 테이블 사이의 관계를 맺음 -> 스키마 변경이 번거롭고 어려움 NoSQL (Not Only SQL) : 데이터 저장 기술 -> 데이터와 트래픽의 증가에 따라 ..