library / framework

라이브러리, ν”„λ ˆμž„μ›Œν¬λŠ” κ°œλ°œμ„ ν• λ•Œ 자주 μ‚¬μš©ν•˜λŠ” ν‚€μ›Œλ“œλ“€μ΄λ‹€. λ­”κ°€ λΉ„μŠ·λΉ„μŠ·ν•œ μ˜λ―ΈμΈκ²ƒμ²˜λŸΌ λ³΄μ΄λŠ”λ° μ–΄λ–¨λ•ŒλŠ” 라이브러리 μ–΄λ–¨λ•ŒλŠ” ν”„λ ˆμž„μ›Œν¬λΌκ³  ν•œλ‹€. μ΄λ²ˆμ—” μœ„ 두 ν‚€μ›Œλ“œμ˜ 의미, 차이점에 λŒ€ν•΄ κ³΅λΆ€ν•΄λ³΄λ €κ³ ν•œλ‹€.

Library

사전적 μ˜λ―ΈλŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν• λ•Œ ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” λΉ„νœ˜λ°œμ„± μžμ›μ˜ λͺ¨μž„이라고 λ˜μ–΄μžˆλ‹€. μ‚¬μ „μ μ •μ˜κ°€ 으레 κ·Έλ ‡λ“― ν•œλˆˆμ— 봐선 아직 μ •ν™•ν•˜κ²Œ 무엇인지 감이 μ•ˆμ˜¨λ‹€. μ˜μ–΄ 단어 κ·ΈλŒ€λ‘œ ν•΄μ„ν•˜μžλ©΄ λ„μ„œκ΄€μ΄λ‹€. λ„μ„œκ΄€μ—λŠ” λ¬Έν•™, κ³Όν•™, μˆ˜ν•™, μ² ν•™ λ“± μ—¬λŸ¬ μΉ΄ν…Œκ³ λ¦¬μ˜ 책듀이 μ’…λ₯˜λ³„λ‘œ λͺ¨μ—¬μžˆλ‹€. ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” 이와 λΉ„μŠ·ν•œ 의미둜써, κ°œλ°œν•˜λ©΄μ„œ ν•„μš”ν•œ νŠΉμ •κΈ°λŠ₯듀을 λͺ¨λ“ˆν™” ν•˜μ—¬ λͺ¨μ•„ 놓은 κ²ƒμ˜ 집합이닀. 예λ₯Ό λ“€μ–΄ μš°λ¦¬κ°€ Cμ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ printf ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄

#include <stdio.h>

char c;

c = 't';

printf(%d, c);

헀더 νŒŒμΌμ— ν‘œμ€€μž…μΆœλ ₯ 라이브러리인 stdio.h(standard Input/Output library)을 μ„ μ–Έν•΄μ•Ό ν•œλ‹€. 이 라이브러리 μ•ˆμ—λŠ” 말 κ·ΈλŒ€λ‘œ ν‘œμ€€ μž…μΆœλ ₯κ³Ό κ΄€λ ¨λœ λͺ¨λ“  ν•¨μˆ˜λ“€μ΄ ν¬ν•¨λ˜μ–΄μžˆλ‹€. (printf, scanf, putchar ...) λ”°λΌμ„œ μš°λ¦¬λŠ” 라이브러리λ₯Ό ν†΅ν•˜μ—¬ κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” κΈ°λŠ₯을 κ°€μ Έλ‹€ μ“°κΈ°λ§Œ ν•˜λ©΄ 되기 λ•Œλ¬Έμ— κ°œλ°œμ‹œκ°„μ„ 단좕 μ‹œν‚¬μˆ˜ 있고 이미 μ»΄νŒŒμΌλ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ— λ§ν‚Ήλ§Œ ν•˜λ©΄ μ‚¬μš©μ΄ λ°”λ‘œ κ°€λŠ₯ν•˜μ—¬ μ΅œμ’…μ μΈ 컴파일 μ‹œκ°„μ„ λ‹¨μΆ•μ‹œμΌœμ€€λ‹€.

링킹(Linking) : μ—¬λŸ¬ μ½”λ“œμ™€ 데이터λ₯Ό λͺ¨μ•„μ„œ μ—°κ²°ν•˜μ—¬ μ‹€ν–‰λ μˆ˜ μžˆλŠ” ν•œκ°œμ˜ 파일둜 λ§Œλ“œλŠ” 것.

Framework

단어λ₯Ό λ¨Όμ € μ‚΄νŽ΄λ³΄μž. Frameμ΄λΌλŠ” λ‹¨μ–΄λŠ” 틀을 μ˜λ―Έν•œλ‹€. 틀을 κ°€μ§€κ³  μΌν•œλ‹€ λΌλŠ” 뜻인데 μ—¬κΈ°μ„œμ˜ 일은 ν”„λ‘œκ·Έλž¨μ˜ κ°œλ°œμ΄λ‹€. 즉 ν”„λ‘œκ·Έλž¨ κ°œλ°œμ‹œ μ‚¬μš©λ˜λŠ” ν‹€μ΄λΌλŠ” 의미인 것이닀.

예λ₯Ό λ“€μ–΄ μš°λ¦¬κ°€ 레고둜 μžλ™μ°¨λ₯Ό λ§Œλ“ λ‹€κ³  μƒκ°ν•΄λ³΄μž. μ„€λͺ…μ„œμ—†μ΄λ„ μžλ™μ°¨λ₯Ό λ§Œλ“€μˆ˜ μžˆκ² μ§€λ§Œ μ„€λͺ…μ„œλ₯Ό 보고 λ§Œλ“€μ—ˆμ„ λ•Œλ³΄λ‹€ 였래걸리고 퀄리티 μžμ²΄λ„ 쑰금 λ–¨μ–΄μ§ˆ 것이닀. 이 μ„€λͺ…μ„œκ°€ λ°”λ‘œ ν”„λ ˆμž„μ›Œν¬μ΄λ‹€.

μš°λ¦¬κ°€ λΌμš°νŒ…, SSR λ“±μ˜ κΈ°λŠ₯이 ν•„μš”ν•œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•΄μ•Ό ν•œλ‹€κ³  ν•˜λ©΄ λ¬Όλ‘  바닐라 μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œλ„ λ§Œλ“€μˆ˜ μžˆκ² μ§€λ§Œ Next js 같은 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ μ••λ„μ μœΌλ‘œ λ§Žλ‹€. κ·Έ μ΄μœ λŠ” μš°λ¦¬κ°€ 직접 κΈ°λŠ₯을 ν•˜λ‚˜ν•˜λ‚˜ λ§Œλ“œλŠ” 것보닀 ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ μ½”λ“œλ₯Ό μ§œλŠ”κ²ƒμ΄ μ‹œκ°„/λΉ„μš©λ©΄μ—μ„œ 훨씬 νš¨μœ¨μ μΌλΏλ”λŸ¬ 퀄리티가 더 μ’‹κΈ° λ•Œλ¬Έμ΄λ‹€. λ˜ν•œ 좔후에 νƒ€μΈμ—κ²Œ μΈμˆ˜μΈκ³„ν•΄μ•Ό ν•˜λŠ” 경우라면 전체적인 μ½”λ“œκ°€ μΌκ΄€μ„±μžˆκ³  체계적이기떄문에 μœ μ§€λ³΄μˆ˜μ— μ’‹λ‹€.

κ·Έλ ‡λ‹€λ©΄ λ‘˜μ˜ μ°¨μ΄λŠ” 뭘까?

κ°€μž₯ μ€‘μš”ν•œ μ°¨μ΄λŠ” ν”„λ‘œκ·Έλž¨μ˜ μ œμ–΄ 흐름 κΆŒν•œμ΄λ‹€. 말이 μ’€ μ–΄λ €μš΄λ° λ‚˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μ œμž‘ν• λ•Œ μ½”λ“œλ₯Ό 자유둭게 μž‘μ„±ν• μˆ˜ μžˆλŠ”μ§€λ‘œ μ΄ν•΄ν–ˆλ‹€. ν”„λ ˆμž„ μ›Œν¬μ˜ 경우,

μœ„ 그림은 next js의 초기 ν”„λ‘œμ νŠΈ νŠΈλ¦¬μ΄λ‹€. λΌμš°νŒ…μ„ ν•˜κ³  μ‹Άλ‹€λ©΄ 디렉토리 경둜둜, λ ˆμ΄μ•„μ›ƒμ„ λ§Œλ“€κ³  μ‹Άλ‹€λ©΄ layout.jsνŒŒμΌμ— μž‘μ„±μ„ ν•΄μ•Όλ§Œ ν•œλ‹€. ν”„λ ˆμž„ μ›Œν¬κ°€ "~~λ₯Ό μ‚¬μš©ν• λ•ŒλŠ” ~~λ°©μ‹μœΌλ‘œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄ λ©λ‹ˆλ‹€."라고 정해놓은 것이기 λ•Œλ¬Έμ— μš°λ¦¬κ°€ κ·Έ 룰에 λ§žμΆ”μ–΄ ν”„λ‘œκ·Έλž˜λ°μ„ ν•΄μ•Ό ν•œλ‹€.

ν•˜μ§€λ§Œ 라이브러리의 경우, μš°λ¦¬κ°€ ν•„μš”ν•œ κ²½μš°μ— κ°€μ Έλ‹€κ°€ μ‚¬μš©ν•œλ‹€. μš°λ¦¬κ°€ next jsλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ "css λ””μžμΈμ„ 쑰금 더 이쁘게 ν•˜κ³ μ‹Άμ€λ°"λΌλŠ” 생각이 λ“ λ‹€λ©΄ Material UI 같은 CSS 라이브러리λ₯Ό μ‚¬μš©ν•œλ‹€. (λ¬Όλ‘  CSSλ₯Ό 맀우 잘 닀룬닀면 μ‚¬μš©ν•˜μ§€ μ•Šμ•„λ„ λ˜κ² μ§€λ§Œ..) μœ„μ—μ„œ μ„€λͺ…ν–ˆλ“―이 νŠΉμ • κΈ°λŠ₯을 λͺ¨λ“ˆν™”ν•˜μ—¬ λͺ¨μ•„λ†“μ•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μžκ°€ μ½”λ“œλ₯Ό μž‘μ„±ν• λ•Œ ν•„μš”ν•œ κΈ°λŠ₯을 κ³¨λΌμ„œ μž…λ§›λŒ€λ‘œ μ‚¬μš©ν• μˆ˜ μžˆλ‹€. (cssλŠ” material ui, μƒνƒœκ΄€λ¦¬μ—λŠ” Redux λ“±..)

Last updated