본문 바로가기

분류 전체보기50

[CSS] CSS 선택자(2)(기본 속성 선택자, 자식 선택자, 자손(후손) 선택자, 인접 형제 선택자, 일반 형제 선택자) 기본 속성 선택자문법 : 태그[속성이름] {}HTML 요소의 속성을 기준으로 스타일을 지정할 수 있는 CSS 기능 [CSS 코드]/* 속성값과 일치하는 태그, 요소 선택 */div[name=name2] { background: orangered;}/* 속성 안의 값이 접두사로 특정 값을 단어로 포함하는 객체 선택 *//* 즉, name1이라는 단어를 포함하고 있는 모든 객체 선택*/div[name~=name1]{ background: yellow;}/* 속성 안의 값이 특정 값으로 끝나는(접미사) 객체 선택 */div[class$=class]{ color: cyan;} [HTML 코드]div 1div 2 div 3 div 4 div1background : yellow, color : cy.. 2025. 4. 14.
[CSS] CSS 선택자(1)(전체 선택자, 태그 선택자, 클래스 선택자, ID 선택자) 전체 선택자문법 : * {}모든 태그를 선택할 때 사용문서 전체에 CSS 스타일이 적용된다. * { color: red;}해당 HTML 문서에 있는 모든 글자의 색상을 빨간색으로 지정하는 CSS태그 선택자문법 : 태그이름 {}특정 태그 요소를 선택할 때 사용특정 태그를 가진 객체에만 CSS가 적용된다. p, li { color: blue;}해당 HTML 문서에 있는 모든 p 태그와 li 태그의 텍스트 색상을 파란색으로 지정하는 CSS클래스 선택자문법 : .클래스 이름 {}특정 클래스를 가진 요소에만 CSS가 적용된다. [CSS 코드].class1 { background: gray; color: purple;} [HTML 코드] 클래스 선택자 테스트 2 클래스 선택자 테스트 3 .. 2025. 4. 14.
[HTML] 하이퍼링크 관련 태그, 폼 관련 태그 하이퍼링크 관련 태그페이지에서 해당 부분을 클릭하면 지정된 페이지로 이동하는 태그외부 사이트 연결, 문서 내부에서 이동 가능 - 외부 사이트로 이동하기 네이버 구글href : 링크한 페이지의 id 값이나 사이트 주소 지정target : 링크 페이지가 표시될 위치(새창 또는 현재창) 지정target="_blank" : 새 창target="_self" : 현재 창download : 링크한 페이지를 표시하지 않고 다운로드 하는 것rel : 현재 페이지의 관계 지정type : 페이지의 파일 유형 지정 - 내부에서 이동하기 본문내용1 본문내용2 본문내용3본문내용1의 상세내용[본문내용1] 클릭 시 같은 id(content1)를 가지고 있는 [본문내용1의 상세내용]으로 이동 폼 관련 태그 .. 2025. 4. 9.
[HTML] 미디어 관련 태그(이미지, 오디오, 비디오) 이미지 관련 태그 태그는 닫기 태그를 사용하지 않는다.웹 페이지에 사진이나 그림을 삽입할 때 사용하는 태그 src : 삽입할 이미지 경로를 지정하는 속성alt : 이미지를 설명해주는 텍스트 속성, 이미지의 경로가 틀렸을 경우 텍스트로 대치weight, height : 이미지의 크기를 설정하는 속성, 반응형 웹을 만들 때는 가변 크기 단위를 주로 사용한다.웹 페이지에서 이미지 태그로 사용 가능한 확장자 : GIF, JPG/JPEG, PNG 오디오 관련 태그웹 브라우저에서 플러그인의 도움 없이 음악을 재생할 수 있게 만들어주는 태그 src : 음악 파일의 경로 지정control : 재생도구 출력 지정autoplay : 자동 재생 여부 지정loop : 반복 여부 지정preloadnone : 미리 다운로드 하지.. 2025. 4. 9.
[HTML] 영역관련태그 수직 분할block 요소로 공간을 수직으로 분할할 때 사용하는 태그  div 태그 첫 번째 영역 두 번째 영역 세 번째 영역   수평분할inline 요소로 공간을 수평으로 분할할 때 사용하는 태그  span 태그 첫 번째 영역 두 번째 영역 세 번째 영역   div 태그 영역과 span 태그 영역 div태그와 span태그의 영역 div 영역 새가 봄바람을 인생을 듣기만 우리 힘있다. 같이, 지혜는 우리는 속에 것은 가슴에 오아이스도 끓는 피어나는 약동하다. 위하여 그들은 일월과 인도하겠다는 방지하는 주며, 쓸쓸한 사막이다. 살았으며, 위하여 싶이 천지는 피어나기 끓는 있는 지혜는 뿐이다. 이것을 인생에 어디 품었기 철환하였는가? 꽃 미인을 가지에 쓸쓸한 것이다. 거친 방황하.. 2025. 4. 9.
[HTML] 표 관련 태그 표를 만드는 태그 : 기본적인 표를 생성해주는 태그 : 표의 행을 나타내는 태그 : 표의 제목 셀을 나타내는 태그(중앙 정렬 및 굵게 표시) : 한개의 열을 만드는데 사용하는 태그 : 테이블의 제목이나 내용을 추가하는 태그, 기본 위치는 테이블 중앙 위  웹 브라우저의 종류 브라우저명 제조사 홈페이지 익스플로러 ms https://www.microsoft.com 크롬 google https://www.google.com .. 2025. 4. 9.
[HTML]목록 관련 태그 순서가 필요없는 목록순서가 필요하지 않은 목록을 만들 때 사용리스트 앞에 특정 모양이 출력된다. (circle, disc, square)해당 모양은 CSS를 이용하여 수정할 수 있다.  html css javascript react  순서가 필요한 목록 태그순서가 필요한 목록을 만들 때 사용속성으로 알파벳, 숫자, 로마숫자 설정 가능CSS로 순서 설정이 가능하다type : 순서 형식(a, A, 1, i, I)start : 시작할 번호 또는 문자  내용1 내용2 내용3 기본형식 html css javascript react영문 소문자로 표기 html css javascript react 영문 대문자로 표기 .. 2025. 4. 8.
[HTML] 글자 관련 태그(텍스트 태그) 제목태그제목을 입력할 때 사용하는 태그폰트의 크기는 h태그 뒤 숫자에 따라 정해져있다.번호가 증가할수록 크기가 작아진다.  첫번째로 큰 제목 두번째로 큰 제목 세번째로 큰 제목 네번째로 큰 제목 다섯번째로 큰 제목 여섯째로 큰 제목    문단 태크 : 한 개의 단락을 만들 때 사용하는 태그, 모든 문장 작성 후 자동으로 문장 개행 후 한 줄 공백을 준다. : 입력한 그래도 출력할 때 사용하는 태그  문단 영역을 나누는 태그로는 p태그와 pre 태그가 있다. p태그는 문단 영역을 나누는 태그이고, 자동으로 문장 개행 후 한줄 공백을 준다. 줄 바꿈 입력은 별도의 태그로 지정해줘야한다. 문단 영역을 나누는 태그로는 p태그와 pre 태그가 있다. pre태그는 띄어쓰기, 여.. 2025. 4. 8.
[Flutter] flutter 상태 관리 패키지 : Riverpod(Provier, Notifier, ref) Riverpod Riverpod이란?flutter의 강력한 상태 관리 라이브러리Provider의 단점을 개선MVVM 아키텍처에서 ViewModel을 쉽게 구현할 수 있고, View에서 ViewModel의 관찰을 쉽게 하게 해줌 Riverpod의 주요 특징타입 안전성 및 컴파일 타임 오류 감지반응형 상태 관리 : 데이터 변경 시 UI 자동 업데이트 및 불필요한 리빌드 방지의존성 주입 : Provider를 통해 여러 곳에서 동일한 인스턴스 공유 가능데이터 캐싱 및 API 관리 : 원격 데이터 소스를 효율적으로 가져옴전역 접근 가능 : context 없이도 어디서든 상태에 접근 가능테스트 친화적Provider와 Notifier Provider 종류Provider 종류특징사용 예시Provider읽기 전용 데이터.. 2025. 3. 23.
[Flutter] MVVM 아키텍처(Model-View-ViewModel) MVVM 아키텍처 MVVM 아키텍처란?Model - View - ViewModel의 약자UI와 비지니스 로직을 효율적으로 분리해 구조화하는 디자인 패턴유지보수성, 재사용성이 좋음.역할이 분리되어 있어 테스트가 용이함. MVVM 구조의 핵심 요소Model데이터와 비지니스 로직을 관리하는 레이어데이터의 CRUD 작업(생성, 읽기, 수정, 삭제), 직렬화/역직렬화 로직이 이 레이어에 포함View와 직접적으로 연결되지 않으며, ViewModel하고만 소통서버 API, 데이터베이스, 로컬 저장소 등의 데이터 소스를 다룸예 : 사용자 정보, 상품 목록 등View사용자 인터페이스(UI)를 담당ViewModel에서 데이터를 가져와 화면에 표시사용자 입력을 ViewModel로 전달하며, Model에 직접 접근하지 않음... 2025. 3. 23.
[Flutter] JSON, jsonEncode(toJson), jsonDecode(fromJson) JSON JSON이란?JavaScript의 객체 표기 방식 기반Flutter에서 서버와 데이터를 주고 받을 때 가장 많이 사용되는 데이터 형식 JSON 사용이유가볍고 빠르기 때문에 서버와 통신 시 부담이 적음.언어의 독립성으로 인해 Python, Dart, JavaScript 등 다양한 언어에서 사용 가능키-값 쌍 구조로 가독성이 높음.많은 REST API들이 JSON 형식을 기본으로 제공 JSON 예시{ "name" : "flutter" "age" : 10}중괄호 안에 key-value 쌍key는 반드시 문자열value에는 다양한 타입이 들어갈 수 있다.String, Number(int, double), Boolean(bool), Array(대괄호), Object(중괄호), nullJSON 데이터 .. 2025. 3. 21.
[Flutter] TextField, TextFormField, TextEditingController TextField특징사용자 입력을 받을 때 사용되는 가장 기본적인 위젯주로 단순한 텍스트 입력, 실시간 데이터 처리에 사용됨. 예시코드import 'package:flutter/material.dart';class TextFieldExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('TextField 예제'), ), body: TextField( decoration: InputDecoration( labelText: '이름', hintText.. 2025. 3. 20.
[Flutter] 레이아웃 관련 위젯(2) : Row, Column, Stack Row특징자식 위젯을 가로 방향(수평)으로 나열하는 위젯 예시코드import 'package:flutter/material.dart';class RowExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Row 예제'), ), body: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, // 가로 방향으로 균등한 간격 유지 crossAxisAlignment: CrossAxisAlignment.center, // 세.. 2025. 3. 19.
[Flutter] 레이아웃 관련 위젯(1) : Container, SizedBox, Card Container특징가장 유연한 스타일링 위젯 : 여백, 패딩, 정렬, 크기, 배경색, 테두리, 그림자 등 다양한 기능 제공복잡한 디자인을 구현할 때 유리커스텀 스타일링 최적화남발할 경우 성능 저하 우려 예시 코드import 'package:flutter/material.dart';class CustomContainer extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Container'), ), body: Container( width: double.infinity, // 가로 길이.. 2025. 3. 18.
[Verilog] 조합회로(Combinational logic) : 인코더(Encoder)와 디코더(Decoder) 인코더와 디코더 차이비교 항목인코더 (Encoder)디코더 (Decoder)입력(Input)여러 개의 신호 중 하나만 활성화압축된(코드화된) 데이터를 입력출력(Output)코드화된 신호 (예: 2진수)원래 의미 있는 정보 (예: BCD, 7세그먼트 신호)예시10진 → 2진 (Decimal to Binary) 변환기2진 → 10진 (Binary to BCD) 변환기사용처키패드 입력, 우선순위 인코딩7세그먼트 디스플레이, 주소 해석 BCD(Binary-Coded Demical)이란?10진수2진수(8비트)BCD 코드 (4비트 × 3)156100111000001 0101 011047001011110000 0100 0111255111111110010 0101 01012진수(Binary)로 10진수(Demical).. 2025. 3. 4.
[Verilog] 순차 회로(Sequential logic) : D-플립플롭(Flip-Flop) 조합회로와 순차회로조합회로논리 게이트들의 조합입력의 변화에 대해 바로 출력이 결정정보(상태)를 저장하는 소자는 필요 없음전가산기, 멀티플렉서, ALU 등순차회로현재의 입력 뿐만 아니라 과거의 입력이나 현재 상태 값을 저장하는 기억소자와 조합회로로 구성상태 값을 기억하기 위한 플립플롭과 순차적 처리의 기준이 되는 클록이 필요 D-플립플롭 심볼 상승에지 트리거 D-FF의 동작클럭의 상승 엣지(↑)에서 입력 d의 값이 출력 q로 전달됨전달된 신호의 값은 다음 번 clk의 상승에지까지 유지클럭이 하강 엣지(↓)이거나 안정된 상태에서는 q가 유지 상승에지 트리거 D-FF 진리표입력출력dclkq0↑01↑1x0qnqn : 동작 전 q의 값clk = ↑ : clk의 상승에지(positive edge) verilog 코.. 2025. 3. 4.
[Verilog] 조합회로(Combinational logic) : ALU(산술 논리 장치) 산술 논리 장치란?명령어에 따라 산술연산, 논리연산, 시프트연산 등의 기능을 수행할 수 있는 조합논리회로ALU(Arithmatic Logic Unit)라고 부른다.CPU에서 가장 중요한 요소 회로(4bit ALU)  ALU의 명령어와 연산명령어연산의미산술연산0000a + b덧셈0001a - b뺄셈0010a x b곱셈0011a / b나눗셈0100a % b나머지비트 단위 논리연산0101~a비트 NOT0110a & b비트 AND0111a | b비트 OR1000a ^ b비트 XOR1001a ~^ b비트 XNOR비트단항 논리연산1010& a비트단항 AND1011| a비트단항 OR1100~& a비트단항 NAND1101^ a비트단항 XOR시프트 연산1110a >> ba를 b비트 우측 이동1111a a를 b비트 좌측 .. 2025. 3. 4.
[Verilog] 조합회로(Combinational logic) : 멀티플렉서(Multiplexer) 멀티플렉서란?멀티플렉서는 2^n개의 입력을 받아 그들 중 하나를 선택하여 출력으로 연결해주는 조합회로데이터 선택기라도고 하며 간단히 MUX라고 부름.한개의 입력을 받아서 2^n개의 출력 중 하나의 출력에 회로를 디멀티플래서 또는 DEMUX라고 함.멀티플렉서나 디멀티플렉서는 여러 개의 데이터 중에서 하나를 선택하기 위해 제어신호가 필요함.회로(8비트 4-to-1 Multiplexer) 진리표(8비트 4-to-1 Multiplexer)sel[1]sel[0]out00a01b10c11d verilog 코드// case문을 이용한 4x1 MUX 설계module mux(a, b, c, d, sel, out); input [7:0] a, b, c, d; input [1:0] sel; output reg [7.. 2025. 3. 3.
[Verilog] 조합회로(Combinational logic) : 전가산기(Full Adder) 전가산기란?두 개의 값(a, b)과 하위 올림 수(cin)를 입력 받아 입력의 합(sum)과 올림 수(carry)를 출력하는 전가산기 회로반가산기 두 개가 합쳐진 것 진리표abcinsumcarry0000001010100101100100110011011010111111  verilog 코드//full adder(전가산기)module fadder(a, b, cin, sum, carry); input a, b, cin; output sum, carry; wire s0, c0, c1; assign s0 = a ^ b; assign c0 = a & b; assign c1 = s0 & cin; assign sum = s0 ^ cin; assign carry = c1 | c0; endmod.. 2025. 3. 3.
[WIL] Flutter 창업 5기 : 3주차를 마치며 서론3주차에는 전투형 rpg game 제작과 팀빌딩을 위한 네트워크를 진행하였다. The four fsFACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 것아침에 9시부터 10시까지 북클럽이 진행된다. 일주일 동안 '장병규의 한국 스타트업'을 읽었다.개인 과제로 전투형 rpg game 제작을 진행하였다.팀 빌딩을 위한 앱창업 캠프 멤버들간의 네트워킹이 진행되었다. 마음이 맞는 팀원들을 찾기 위해 많은 대화를 나누었다.FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌처음에 앱창업 캠프에 조인했을 때, 처음부터 끝까지 혼자서 하는 프로그램인 줄 알고 신청했었다. 하지만 막상 팀의 비중이 컸었다. 그 계기로 팀에 대해서 진지하게 고민해보던 찰나, '장병규의 한국 스타트업'을 읽었고,.. 2024. 11. 8.
[WIL] Flutter 창업 5기 : 2주차를 마치며 서론2주차에 해야할 일은 크게 두가지였다. 팀원들과 같이 앱을 분석하는 팀과제, 콘솔 쇼핑몰을 제작하는 개인 과제가 있었다. 그리고 본격적인 북클럽이 시작되는 주차였다.  The four fsFACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 것팀 과제로 북미 배달 플랫폼인 도어대시, 우버이츠, 그럽허브에 대해 조사하기로 하였다. 처음에 세 개의 앱에 대해 다 같이 조사를 한 뒤 좋은 부분들을 취합하여 적기로 했다. 나는 그 중에서 그럽 허브에 대해 취합하는 역할을 맡았다.필수 기능을 완성한 뒤 여유가 되면 도전 기능도 추가하여 제작하는 과제였다. 어느 정도 프로그래밍 지식이 있어 도전 기능까지 완수할 수 있었다.FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌이번 주에는 또 .. 2024. 11. 1.
[DART] vs code에서 dart 프로젝트 생성하기, 터미널 창에서 input값 받기 dart 프로젝트 생성하기 아래의 두 방법 모두 실행에 문제는 없다. 1. vs code 상에서 dart 프로젝트 생성하기원하는 경로에 빈 폴더 생성(ex. 폴더명 example_console 생성)vs code에서 생성한 폴더를 열고 자신이 원하는 대로 디렉토리 구성 후 코드 작성2. 터미널 상에서 dart 프로젝트 생성하기$ dart create console_shopping_mall //dart create [프로젝트명]원하는 경로에 dart create [프로젝트명] 입력자동으로 체계적인 dart 디렉토리들이 생성됨  터미널 창에서 input 값 받기 아래의 run 버튼을 누르면 실행이 되기는 하지만 막상 input 값을 입력하면 오류가 발생한다.(Unknown evaluation response.. 2024. 11. 1.
[WIL] Flutter 창업 5기 : 1주차를 마치며 서론이번주부터 본 캠프가 시작되었다. 오전 9시부터 오후 9시까지 진행해야 하는 일정이라 쉽진 않지만 온라인이라서 어느 정도 괜찮았던 것 같다. 1주차부터 본격적인 수업을 하진 않았고, 사전 캠프에서 미리 봤던 강의를 바탕으로 팀을 구성하여 미니 프로젝트를 진행하게 되었다. 프로젝트 중간에 틈틈이 특강도 진행되었다. The four fsFACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 것팀원들과 협업하여 자기소개 어플을 만드는 미니 프로젝트를 진행하였다.레이더 차트를 작성하고 애니메이션 효과를 주어 어플리케이션을 좀 더 동적이게끔 만들었다.FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌각자 다른 곳에서 일하던 사람들끼리 모여 하나의 목적을 가지고 프로젝트를 한다는 것의 시너.. 2024. 10. 25.
[Flutter] flutter로 레이더 차트 만들기 레이더 차트의 구성레이더 차트를 만들기 위해서 많은 요소가 필요하지만 그 중에서 레이더 차트를 구성하는 기본 요소들이 있다.ticks: 레이더 차트의 눈금값(여기서 빨간색 글자로 20, 40, 60...으로 표시된 것들) features: 레이더 차트의 각 축에 해당되는 라벨(여기서 파란색 글자로 창의력, 실행력...으로 표시된 것들)data: 실제 데이터 값. 이 값들을 기준으로 그래프가 그려지게 됨(검정색 글자로 50, 60, 70...으로 표시된 것들)sides: 다각형의 변의 개수(여기서는 육각형이므로 sides = 6이다.) 주의할 점만약 sides의 값이 features나 data값의 개수보다 작거나 크면 차트가 제대로 생성되지 않는 오류가 발생할 수 있다.이러한 오류들을 방지해주기 위해서는 .. 2024. 10. 25.
[ERROR] CocoaPods no installed or not in valid state 문제) 이전까지는 잘 되다가 최신 master commit으로 시뮬레이션을 하려고 했을 때 아래와 같은 오류 발생CocooPods는 이미 설치되어 있었음. 해결방안)터미널 상에 'flutter run'을 입력하여 해결 2024. 10. 24.
[ERROR] Error (Xcode): Target debug_unpack_ios failed: Exception: Failed to codesign 해결 방법 문제) flutter project 실행 시 Error (Xcode): Target debug_unpack_ios failed: Exception: Failed to codesign 에러 발생Failed to build iOS appError (Xcode): Target debug_unpack_ios failed: Exception: Failed to codesignCould not build the application for the simulator. 해결 방안)실행하려는 프로젝트 폴더가 icloud에 동기화 된 폴더에 있기 때문에 발생한 문제 실행하려는 프로젝트 파일을 icloud가 동기화되지 않는 파일에 옮긴 후 다시 run하면 해결 2024. 10. 16.
[C++] 함수 Q1. 매개변수로 전달된 문자가 대문자면 소문자로, 소문자면 대문자로 변환하는 함수를 정의하시오. #include using namespace std;char convert(char ch){ if(ch >= 65 && ch = 97 && ch "; cin >> data1; data2 = convert(data1); cout   Q2. 매개변수로 단을 받아 해당 구구단을 출력하는 함수를 만드시오. 매개변수로 3이 전달되면 3단을 출력한다. #include using namespace std;void gogodan(int dan){ int i; for (i = 1; i > dan; // 단 입력받기 gogodan(dan);}  Q3. 두 정수에 대한 평균을 구해서 실수로 반환하는 .. 2024. 9. 30.
[C++] 기억클래스와 변수 기억 클래스 기억 공간변수를 선언한 후에 변수를 사용할 수 있다.변수 선언을 하는 이유는 메모리에 변수의 기억 공간 영역을 확보하기 위해서다.변수의 기억공간을 얼마만큼 확보할 것인지는 자료형에 의해서 결정변수를 어떻게 선언하느냐에 따라서 유효 범위와 생존 기간 등 변수의 성격이 달라진다.변수의 유효 범위와 생존 기간은 기억 클래스에 의해서 결정세분화된 데이터 영역에 변수가 어디에 어떻게 확보될지는 기억클래스에 의해서 결정모든 변수들이 동일한 기억 공간에 할당되는 것은 아니다.기억공간(RAM 구조)  기억클래스종류유효 범위생존 기간메모리초기화 여부auto(자동 변수)블록 내일시적스택쓰레기 값extern(외부 변수)프로그램 내영구적메모리숫자 0static(정적 변수)내부 : 블록 내외부 : 모듈 내영구적메모.. 2024. 9. 24.
[C++] 함수(2) 함수의 유형 함수의 기본 유형함수는 매개변수와 함수의 자료형의 유무에 따라 다음과 같이 나눌 수 있다.매개변수와 반환값이 모두 없는 함수매개변수만 있고 반환값이 없는 함수매개변수와 반환값이 모두 있는 함수 매개변수와 반환값이 모두 없는 함수#include using namespace std;void show(){ cout void show()void : 함수의 자료형, show : 함수명, 매개변수 없음함수의 자료형과 함수명은 생략할 수 없지만, 함수의 매개변수는 생략할 수 있다.단순히 문자열을 출력하는 함수이므로 매개변수는 생략했다.매개변수가 필요하지 않으면 기술하지 않아도 되지만 void를 사용해서 매개변수가 없음을 명시할 수 있다.void show(void)return 뒤에 아무런 값도 적어주지.. 2024. 9. 24.
[C++] 함수(1) 함수 함수란?특정 기능(function)을 처리하기 위한 명령을 묶어 놓은 작은 프로그램 단위특정한 기능을 수행하고 그 결과로 어떤 값을 반환기능 단위로 모듈화해서 데이터가 주어지면 이를 가공해서 원하는 결과를 얻을 수 있도록 해줌 함수의 필요성불필요하게 코드를 길게 작성하지 않아도 되고, 소스코드가 중복되지 않아 프로그램을 간결하게 작성할 수 있음.프로그램 실행 중에 함수명과 동일한 부분을 만나면 해당 함수로 분기해서 함수를 실행하고 함수 실행을 마치면 다시 main함수로 되돌아옴.프로그램에서 자주 사용되는 코드 블록을 기능 단위로 따로 한 번만 만들어 두고 필요할 때마다 호출해서 그 기능을 처리할 수 있음. 라이브러리 함수와 사용자 정의 함수라이브러리 함수 : 컴파일러를 제작한 곳에서 미리 만들어 제.. 2024. 9. 20.