μ μΈκ³ κ°λ°μλ₯Ό μν μΉ νλ«νΌ νλ μμν¬μ JavaScript ν΅ν© μΈνλΌμ λν ν¬κ΄μ μΈ κ°μ΄λλ‘, κΈ°μ , λͺ¨λ² μ¬λ‘ λ° λ―Έλ λν₯μ νꡬν©λλ€.
μΉ νλ«νΌ νλ μμν¬: JavaScript ν΅ν© μΈνλΌ
νλ μΉμ μνΈ μ°κ²°λ κΈ°μ λ€μ 볡μ‘ν μνκ³μ λλ€. κ·Έ μ€μ¬μλ λ€μν νλ«νΌκ³Ό μ₯μΉμμ λνν κ²½νμ μ 곡νλ λ€μ¬λ€λ₯ν μΈμ΄μΈ JavaScriptκ° μμ΅λλ€. React, Angular, Vue.jsμ κ°μ μΉ νλ«νΌ νλ μμν¬λ μ΄λ¬ν κ²½νμ ꡬμΆνκΈ° μν ꡬ쑰νλ νκ²½μ μ 곡ν©λλ€. μ΄λ¬ν νλ μμν¬μ μ€μν μΈ‘λ©΄μ JavaScript ν΅ν© μΈνλΌμ λλ€. μ΄λ νλ°νΈμλ(μ¬μ©μ μΈν°νμ΄μ€)λ₯Ό λ°±μλ(λ°μ΄ν° λ° λ‘μ§) λ° κΈ°ν μΈλΆ μλΉμ€μ μ°κ²°νκΈ° μν΄ μ 곡νλ λ©μ»€λμ¦μ λλ€.
JavaScript ν΅ν©μ κ³Όμ μ΄ν΄νκΈ°
ꡬ체μ μΈ κΈ°μ μ λ°μ΄λ€κΈ° μ μ JavaScript ν΅ν©κ³Ό κ΄λ ¨λ μΌλ°μ μΈ κ³Όμ λ₯Ό μ΄ν΄νλ κ²μ΄ μ€μν©λλ€.
- 볡μ‘μ±: μ΅μ μΉ μ ν리μΌμ΄μ μ 볡μ‘ν λ°μ΄ν° νλ¦κ³Ό μνΈ μμ©μ μꡬνλ©°, κ²¬κ³ νκ³ μ μ‘°μ§λ ν΅ν© μ λ΅μ΄ νμν©λλ€.
- λΉλκΈ°μ±: JavaScriptμ λΉλκΈ°μ νΉμ±μ κ²½ν© μ‘°κ±΄μ λ°©μ§νκ³ μνν λ°μ΄ν° κ°μ Έμ€κΈ°λ₯Ό 보μ₯νκΈ° μν΄ μ½λ°±, νλΌλ―Έμ€ λ° async/awaitλ₯Ό μ μ€νκ² μ²λ¦¬ν΄μΌ ν©λλ€.
- κ΅μ°¨ μΆμ² 리μμ€ κ³΅μ (CORS): λΈλΌμ°μ μ 보μ μ νμΌλ‘ μΈν΄ λ€λ₯Έ λλ©μΈμ 리μμ€μ λν μ‘μΈμ€κ° μ νλ μ μμΌλ―λ‘ νΉμ μλ² μΈ‘ ꡬμ±μ΄ νμν©λλ€.
- λ°μ΄ν° μ§λ ¬ν λ° μμ§λ ¬ν: JavaScript κ°μ²΄μ JSONκ³Ό κ°μ νμ κ°μ λ°μ΄ν°λ₯Ό λ³ννλ κ³Όμ μμ μ€λ²ν€λμ μ μ¬μ μΈ μ€λ₯κ° λ°μν μ μμ΅λλ€.
- μ€λ₯ μ²λ¦¬: ν΅ν© μ€μ μ€λ₯λ₯Ό μ¬λ°λ₯΄κ² μ²λ¦¬νλ κ²μ μμ μ μ΄κ³ μ λ’°ν μ μλ μ¬μ©μ κ²½νμ μ 곡νλ λ° μ€μν©λλ€.
- μ±λ₯: λΉν¨μ¨μ μΈ ν΅ν© κΈ°μ μ μ±λ₯ λ³λͺ© νμκ³Ό λλ¦° λ‘λ© μκ°μΌλ‘ μ΄μ΄μ§ μ μμ΅λλ€.
- 보μ: μ μ‘ μ€ λ―Όκ°ν λ°μ΄ν°λ₯Ό 보νΈνκ³ κ΅μ°¨ μ¬μ΄νΈ μ€ν¬λ¦½ν (XSS)κ³Ό κ°μ μ·¨μ½μ±μ λ°©μ§νλ κ²μ΄ κ°μ₯ μ€μν©λλ€.
- μν κ΄λ¦¬: μ ν리μΌμ΄μ μ μ¬λ¬ κ΅¬μ± μμ λ° λΆλΆμ κ±Έμ³ λ°μ΄ν° μνλ₯Ό κ΄λ¦¬νλ κ²μ 볡μ‘ν΄μ§ μ μμ΅λλ€. νλ μμν¬λ μ’ μ’ μ΄μ λν μ루μ μ μ 곡νκ±°λ λͺ¨λ² μ¬λ‘λ₯Ό μ μν©λλ€.
ν΅μ¬ κ°λ λ° κΈ°μ
μΉ νλ«νΌ νλ μμν¬μμ JavaScript ν΅ν©μ λ·λ°μΉ¨νλ λͺ κ°μ§ ν΅μ¬ κ°λ κ³Ό κΈ°μ μ λ€μκ³Ό κ°μ΅λλ€.
1. Fetch API
Fetch APIλ XMLHttpRequest(XHR)λ₯Ό λ체νλ μ΅μ APIλ‘, HTTP μμ²μ 보λ΄κΈ° μν λ κΉλνκ³ κ°λ ₯ν μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€. νλΌλ―Έμ€λ₯Ό λ°ννμ¬ λΉλκΈ° μμ μ λ¨μνν©λλ€.
μμ:
fetch('https://api.example.com/data')
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.then(data => {
console.log('Data:', data);
})
.catch(error => {
console.error('Error fetching data:', error);
});
κΈλ‘λ² κ³ λ € μ¬ν: Fetch APIλ₯Ό μ¬λ¬ μ§μμμ μ¬μ©ν λ λ€νΈμν¬ μ§μ°μ μν₯μ κ³ λ €νμμμ€. μΊμ± λ° μ½ν μΈ μ μ‘ λ€νΈμν¬(CDN)μ κ°μ κΈ°μ μ μ§λ¦¬μ μΌλ‘ λΆμ°λ μμΉμ μ¬μ©μμκ² μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
2. Axios
Axiosλ λΈλΌμ°μ μ Node.js λͺ¨λλ₯Ό μν μΈκΈ° μλ νλΌλ―Έμ€ κΈ°λ° HTTP ν΄λΌμ΄μΈνΈμ λλ€. μλ JSON λ³ν, μμ² μ·¨μ λ° μΈν°μ ν°μ κ°μ κΈ°λ₯μ μ 곡ν©λλ€.
μμ:
axios.get('/api/users')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.log(error);
});
κΈλ‘λ² κ³ λ € μ¬ν: Axiosλ μ λ’°ν μ μλ μΈν°λ· μ°κ²°μ΄ μλ μ§μμμ λ€νΈμν¬ λ¬Έμ λ‘ μΈν΄ μμ²μ΄ 무기ν μ€λ¨λλ κ²μ λ°©μ§νκΈ° μν΄ νμμμμ μ€μ ν μ μμ΅λλ€. μΌμμ μΈ λ€νΈμν¬ μ€λ₯λ₯Ό μ²λ¦¬νκΈ° μν΄ μ§μ λ°±μ€νλ₯Ό μ¬μ©ν μ¬μλ λ©μ»€λμ¦ κ΅¬νμ κ³ λ €νμμμ€.
3. μΉμμΌ
μΉμμΌ(WebSockets)μ λ¨μΌ TCP μ°κ²°μ ν΅ν΄ μ μ΄μ€ ν΅μ μ±λμ μ 곡νμ¬ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ€μκ° λ°μ΄ν° κ΅νμ κ°λ₯νκ² ν©λλ€. μ΄λ μ±ν , 곡λ νΈμ§ λ° λΌμ΄λΈ λμ보λμ κ°μ μ ν리μΌμ΄μ μ μ ν©ν©λλ€.
μμ:
const socket = new WebSocket('wss://example.com/socket');
socket.onopen = () => {
console.log('WebSocket connected');
socket.send('Hello from the client!');
};
socket.onmessage = (event) => {
console.log('Received:', event.data);
};
socket.onclose = () => {
console.log('WebSocket closed');
};
κΈλ‘λ² κ³ λ € μ¬ν: μΉμμΌμ μꡬ μ°κ²°μ μμ‘΄ν©λλ€. νΉν μ μΈκ³ μ¬μ©μλ₯Ό 보μ νκ³ μλ κ²½μ° μΈνλΌκ° λλμ λμ μ°κ²°μ μ²λ¦¬ν μ μλμ§ νμΈνμμμ€. λ‘λ λ°Έλ°μ± λ° μ°κ²° νλ§μ λΆν λΆμ°μ λμμ΄ λ μ μμ΅λλ€.
4. μλ² μ μ‘ μ΄λ²€νΈ (SSE)
μλ² μ μ‘ μ΄λ²€νΈ(Server-Sent Events, SSE)λ μλ²κ° λ¨μΌ HTTP μ°κ²°μ ν΅ν΄ ν΄λΌμ΄μΈνΈλ‘ λ°μ΄ν°λ₯Ό νΈμν μ μλλ‘ ν©λλ€. μ€μκ° μ λ°μ΄νΈ λλ μλ¦Όκ³Ό κ°μ λ¨λ°©ν₯ λ°μ΄ν° νλ¦μ κ²½μ° μΉμμΌλ³΄λ€ ꡬννκΈ°κ° λ κ°λ¨ν©λλ€.
μμ:
const eventSource = new EventSource('/events');
eventSource.onmessage = (event) => {
console.log('Received:', event.data);
};
eventSource.onerror = (error) => {
console.error('EventSource error:', error);
};
κΈλ‘λ² κ³ λ € μ¬ν: μΉμμΌκ³Ό λ§μ°¬κ°μ§λ‘ SSE μ°κ²°μ λ€νΈμν¬ μ§μ° λ° μ λ’°μ±μ μν₯μ λ°μ μ μμ΅λλ€. νΉν λ€νΈμν¬ μΈνλΌκ° μ΄μ ν μ§μμμλ μ°κ²° μμ μ±μ μ μ§νκΈ° μν΄ μμΆ λ° Keep-alive μ νΈμ κ°μ κΈ°μ μ μ¬μ©νμμμ€.
5. GraphQL
GraphQLμ APIλ₯Ό μν 쿼리 μΈμ΄μ΄μ κΈ°μ‘΄ λ°μ΄ν°λ‘ ν΄λΉ 쿼리λ₯Ό μΆ©μ‘±μν€κΈ° μν λ°νμμ λλ€. ν΄λΌμ΄μΈνΈκ° νΉμ λ°μ΄ν°λ₯Ό μμ²ν μ μλλ‘ νμ¬ κ³Όλν λ°μ΄ν° κ°μ Έμ€κΈ°λ₯Ό μ€μ΄κ³ μ±λ₯μ ν₯μμν΅λλ€.
μμ (Apollo Client μ¬μ©):
import { ApolloClient, InMemoryCache, gql } from '@apollo/client';
const client = new ApolloClient({
uri: '/graphql',
cache: new InMemoryCache()
});
const GET_USER = gql`
query GetUser($id: ID!) {
user(id: $id) {
id
name
email
}
}
`;
client.query({
query: GET_USER,
variables: { id: '123' }
})
.then(result => console.log(result.data));
κΈλ‘λ² κ³ λ € μ¬ν: GraphQLμ μ μ‘λλ λ°μ΄ν°μ λν μΈλ°ν μ μ΄λ₯Ό νμ©νμ¬ νμ΄λ‘λ ν¬κΈ°λ₯Ό μ΅μννκ³ νΉν λμνμ΄ μ νλ μ¬μ©μμκ² μ±λ₯μ ν₯μμν΅λλ€. GraphQL CDNμ μ¬μ©νμ¬ μΏΌλ¦¬ κ²°κ³Όλ₯Ό μΊμνκ³ μ§λ¦¬μ μΌλ‘ λΆμ°λ μ¬μ©μμ μ§μ° μκ°μ μ€μ΄λ κ²μ κ³ λ €νμμμ€.
6. RESTful API
RESTful API(Representational State Transfer)λ μΉ μλΉμ€λ₯Ό ꡬμΆνκΈ° μν΄ λ리 μ±νλ μν€ν μ² μ€νμΌμ λλ€. νμ€ HTTP λ©μλ(GET, POST, PUT, DELETE)λ₯Ό μ¬μ©νμ¬ λ¦¬μμ€μ μνΈ μμ©ν©λλ€.
μμ:
// GET request to retrieve a resource
fetch('/api/products/123', { method: 'GET' })
.then(response => response.json())
.then(data => console.log(data));
// POST request to create a new resource
fetch('/api/products', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ name: 'New Product', price: 25.99 })
})
.then(response => response.json())
.then(data => console.log(data));
κΈλ‘λ² κ³ λ € μ¬ν: μ μΈκ³ μ¬μ©μλ₯Ό μν RESTful APIλ₯Ό μ€κ³ν λ μ½ν μΈ νμ(content negotiation)μ μ¬μ©νμ¬ λ€μν μΈμ΄ λ° νμμ μ§μνμμμ€. μ μ ν μΊμ± λ©μ»€λμ¦μ ꡬννμ¬ μλ² λΆνλ₯Ό μ€μ΄κ³ μ μΈκ³ μ¬μ©μμ μλ΅ μκ°μ κ°μ νμμμ€.
νλ μμν¬λ³ ν΅ν© ν¨ν΄
κ° μΉ νλ«νΌ νλ μμν¬λ JavaScript ν΅ν©μ μν κ³ μ ν ν¨ν΄κ³Ό λꡬλ₯Ό μ 곡ν©λλ€. λ€μμ λͺ κ°μ§ μμμ λλ€.
React
- useEffect Hook: ν¨μν μ»΄ν¬λνΈ λ΄μμ λ°μ΄ν° κ°μ Έμ€κΈ°μ κ°μ λΆμ ν¨κ³Όλ₯Ό μνν©λλ€.
- Context API: μ μ μνλ₯Ό κ΄λ¦¬νκ³ prop λλ¦΄λ§ μμ΄ μ»΄ν¬λνΈμμ μ κ·Ό κ°λ₯νλλ‘ ν©λλ€.
- Redux/MobX: 볡μ‘ν μ ν리μΌμ΄μ μ μν μν κ΄λ¦¬ λΌμ΄λΈλ¬λ¦¬μ λλ€.
- React Query/SWR: λ°μ΄ν° κ°μ Έμ€κΈ°, μΊμ± λ° μν κ΄λ¦¬λ₯Ό μν λΌμ΄λΈλ¬λ¦¬μ λλ€.
Angular
- HttpClient Module: HTTP μμ²μ μμ±ν©λλ€.
- Observables: λΉλκΈ° λ°μ΄ν° μ€νΈλ¦Όμ μ²λ¦¬ν©λλ€.
- RxJS: λ°μν νλ‘κ·Έλλ°μ μν κ°λ ₯ν λΌμ΄λΈλ¬λ¦¬μ λλ€.
- Angular CLI: ν΅ν© λ‘μ§μ μ²λ¦¬νλ μλΉμ€ λ° μ»΄ν¬λνΈλ₯Ό μμ±νκΈ° μν λꡬλ₯Ό μ 곡ν©λλ€.
Vue.js
- Vuex: 곡μ μν κ΄λ¦¬ λΌμ΄λΈλ¬λ¦¬μ λλ€.
- Vue Router: ν΄λΌμ΄μΈνΈ μΈ‘ λΌμ°ν λ° νμμ μ²λ¦¬ν©λλ€.
- Axios/Fetch: HTTP μμ²μ μμ±νλ λ° μ¬μ©λ μ μμ΅λλ€.
- Vue CLI: νλ‘μ νΈ μ€μΊν΄λ© λ° μμ‘΄μ± κ΄λ¦¬λ₯Ό μν λꡬλ₯Ό μ 곡ν©λλ€.
λ§μ΄ν¬λ‘μλΉμ€ λ° μλ²λ¦¬μ€ μν€ν μ²
λ§μ΄ν¬λ‘μλΉμ€ λ° μλ²λ¦¬μ€ μν€ν μ²λ νμ₯ κ°λ₯νκ³ λ³΅μλ ₯ μλ μΉ μ ν리μΌμ΄μ μ ꡬμΆνλ λ° μ μ λ μΈκΈ°λ₯Ό μ»κ³ μμ΅λλ€. μ΄λ¬ν μν€ν μ²μμ JavaScript ν΅ν©μ μ’ μ’ μ¬λ¬ λ°±μλ μλΉμ€ λ° ν¨μμ μνΈ μμ©νλ κ²μ ν¬ν¨ν©λλ€.
λ§μ΄ν¬λ‘μλΉμ€:
λ§μ΄ν¬λ‘μλΉμ€λ λ€νΈμν¬λ₯Ό ν΅ν΄ μλ‘ ν΅μ νλ μκ³ λ 립μ μΈ μλΉμ€μ λλ€. λ§μ΄ν¬λ‘μλΉμ€ νκ²½μμμ JavaScript ν΅ν©μ μΌλ°μ μΌλ‘ λ€μν μλΉμ€μ API νΈμΆμ νμ¬ λ°μ΄ν°λ₯Ό κ²μνκ³ μ λ°μ΄νΈνλ κ²μ ν¬ν¨ν©λλ€. API κ²μ΄νΈμ¨μ΄λ μμ²μ μ μ ν μλΉμ€λ‘ κ΄λ¦¬νκ³ λΌμ°ν νλ λ° μ¬μ©λ μ μμ΅λλ€.
μλ²λ¦¬μ€:
μλ²λ¦¬μ€ μν€ν μ²λ₯Ό μ¬μ©νλ©΄ μλ²λ₯Ό νλ‘λΉμ λνκ±°λ κ΄λ¦¬ν νμ μμ΄ μ½λλ₯Ό μ€νν μ μμ΅λλ€. μλ²λ¦¬μ€ νκ²½μμμ JavaScript ν΅ν©μ μ’ μ’ νΉμ μμ μ μννκΈ° μν΄ μλ²λ¦¬μ€ ν¨μ(μ: AWS Lambda, Azure Functions, Google Cloud Functions)λ₯Ό νΈμΆνλ κ²μ ν¬ν¨ν©λλ€. API Gatewayλ μ΄λ¬ν ν¨μλ₯Ό HTTP μλν¬μΈνΈλ‘ λ ΈμΆνλ λ° μ¬μ©λ μ μμ΅λλ€.
νλ‘κ·Έλ μλΈ μΉ μ± (PWA)
νλ‘κ·Έλ μλΈ μΉ μ±(Progressive Web Apps, PWA)μ μ¬μ©μ μ₯μΉμ μ€μΉν μ μμΌλ©° λ€μ΄ν°λΈμ μ μ¬ν κ²½νμ μ 곡νλ μΉ μ ν리μΌμ΄μ μ λλ€. PWAμμμ JavaScript ν΅ν©μ μ’ μ’ μλΉμ€ μ컀λ₯Ό μ¬μ©νμ¬ μμ°μ μΊμνκ³ , μ€νλΌμΈ κΈ°λ₯μ μ²λ¦¬νλ©°, νΈμ μλ¦Όμ μ 곡νλ κ²μ ν¬ν¨ν©λλ€.
μλΉμ€ μ컀:
μλΉμ€ μ컀λ λ°±κ·ΈλΌμ΄λμμ μ€νλλ JavaScript νμΌλ‘, λ€νΈμν¬ μμ²μ κ°λ‘μ±κ³ , μμ°μ μΊμνλ©°, μ€νλΌμΈ κΈ°λ₯μ μ 곡ν μ μμ΅λλ€. μ΄λ PWAμ ν΅μ¬ κ΅¬μ± μμμ λλ€.
JavaScript ν΅ν©μ μν λͺ¨λ² μ¬λ‘
μ±κ³΅μ μΈ JavaScript ν΅ν©μ 보μ₯νλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄μμμ€.
- λΉλκΈ° νλ‘κ·Έλλ° κΈ°μ μ¬μ©: νλΌλ―Έμ€, async/await λλ μ½λ°±μ μ¬μ©νμ¬ λ©μΈ μ€λ λλ₯Ό μ°¨λ¨νμ§ λ§μμμ€.
- μ μ ν μ€λ₯ μ²λ¦¬ ꡬν: μ ν리μΌμ΄μ μΆ©λμ λ°©μ§νκ³ μ¬μ©μμκ² μ μ©ν μ€λ₯ λ©μμ§λ₯Ό μ 곡νκΈ° μν΄ μ€λ₯λ₯Ό μ°μνκ² ν¬μ°©νκ³ μ²λ¦¬νμμμ€.
- λ°μ΄ν° μ ν¨μ± κ²μ¬: μ ν¨νμ§ μμ λ°μ΄ν°κ° μμ€ν μ μ μ λλ κ²μ λ°©μ§νκΈ° μν΄ ν΄λΌμ΄μΈνΈμ μλ² λͺ¨λμμ λ°μ΄ν°λ₯Ό μ ν¨μ± κ²μ¬νμμμ€.
- API 보μ: λ¬΄λ¨ μ‘μΈμ€λ‘λΆν° APIλ₯Ό 보νΈνκΈ° μν΄ μΈμ¦ λ° κΆν λΆμ¬ λ©μ»€λμ¦μ μ¬μ©νμμμ€.
- μ±λ₯ λͺ¨λν°λ§: Google PageSpeed Insights λ° WebPageTestμ κ°μ λꡬλ₯Ό μ¬μ©νμ¬ μ ν리μΌμ΄μ μ±λ₯μ λͺ¨λν°λ§νκ³ μ μ¬μ μΈ λ³λͺ© νμμ μλ³νμμμ€.
- λ¨μ ν μ€νΈ μμ±: ν΅ν© μ½λκ° μ¬λ°λ₯΄κ² μλνλμ§ νμΈνκΈ° μν΄ λ¨μ ν μ€νΈλ₯Ό μμ±νμμμ€.
- μΌκ΄λ μ½λ© μ€νμΌ μ¬μ©: μ½λ κ°λ μ±κ³Ό μ μ§ λ³΄μμ±μ ν₯μμν€κΈ° μν΄ μΌκ΄λ μ½λ© μ€νμΌμ λ°λ₯΄μμμ€. λ¦°ν λꡬλ₯Ό μ¬μ©νμ¬ μ½λ© μ€νμΌμ κ°μ νμμμ€.
- μ½λ λ¬Έμν: λ€λ₯Έ κ°λ°μκ° μ½λλ₯Ό μ΄ν΄νκ³ μ μ§ κ΄λ¦¬νκΈ° μ½λλ‘ μ½λλ₯Ό μ² μ ν λ¬Έμννμμμ€.
- μ΄λ―Έμ§ μ΅μ ν: νμΌ ν¬κΈ°λ₯Ό μ€μ΄κ³ λ‘λ© μκ°μ κ°μ νκΈ° μν΄ μ΄λ―Έμ§λ₯Ό μ΅μ ννμμμ€.
- μΊμ± νμ©: μλ² λΆνλ₯Ό μ€μ΄κ³ μ¬μ©μ μλ΅ μκ°μ κ°μ νκΈ° μν΄ μΊμ± λ©μ»€λμ¦μ μ¬μ©νμμμ€.
- κΈλ‘λ²ν λ° νμ§ν κ³ λ €: κ΅μ ν(i18n) λ° νμ§ν(l10n) κΈ°μ μ μ¬μ©νμ¬ μ ν리μΌμ΄μ μ΄ μ¬λ¬ μΈμ΄ λ° μ§μμ μ§μνλλ‘ νμμμ€. κ° λ‘μΌμΌμ μ ν©ν νμμΌλ‘ λ μ§, μκ° λ° ν΅νλ₯Ό νμνμμμ€.
- μ κ·Όμ± (A11y): μ κ·Όμ± μ§μΉ¨μ λ°λΌ μ₯μ κ° μλ μ¬μ©μκ° μ ν리μΌμ΄μ μ μ κ·Όν μ μλλ‘ νμμμ€.
JavaScript ν΅ν©μ λ―Έλ λν₯
JavaScript ν΅ν©μ νκ²½μ λμμμ΄ μ§ννκ³ μμ΅λλ€. λ€μμ λͺ κ°μ§ μλ‘μ΄ λν₯μ λλ€.
- WebAssembly (WASM): WASMμ μ¬μ©νλ©΄ C++ λλ Rustμ κ°μ λ€λ₯Έ μΈμ΄λ‘ μμ±λ μ½λλ₯Ό λΈλΌμ°μ μμ μ€νν μ μμ΅λλ€. μ΄λ κ³μ° μ§μ½μ μΈ μμ μ μ±λ₯μ ν¬κ² ν₯μμν¬ μ μμ΅λλ€.
- μλ²λ¦¬μ€ μ£μ§ μ»΄ν¨ν : μλ²λ¦¬μ€ μ£μ§ μ»΄ν¨ν μ μλ²λ¦¬μ€ ν¨μλ₯Ό μ¬μ©μμκ² λ κ°κΉκ² μ€ννμ¬ μ§μ° μκ°μ μ€μ΄κ³ μ±λ₯μ ν₯μμν΅λλ€.
- AI κΈ°λ° API: AI κΈ°λ° APIλ μ§λ₯ν λ°μ΄ν° μ²λ¦¬ λ° μλν κΈ°λ₯μ μ 곡ν μ μμ΅λλ€.
- λ‘μ° μ½λ/λ Έ μ½λ νλ«νΌ: λ‘μ° μ½λ/λ Έ μ½λ νλ«νΌμ κ°λ° νλ‘μΈμ€λ₯Ό λ¨μννκ³ μλ―Ό κ°λ°μκ° κ΄λ²μν μ½λ© μ§μ μμ΄λ μ ν리μΌμ΄μ μ ꡬμΆν μ μλλ‘ ν©λλ€.
κ²°λ‘
JavaScript ν΅ν©μ νλ μΉ κ°λ°μ μ€μν μΈ‘λ©΄μ λλ€. μ΄ κ°μ΄λμ μ€λͺ λ ν΅μ¬ κ°λ , κΈ°μ λ° λͺ¨λ² μ¬λ‘λ₯Ό μ΄ν΄ν¨μΌλ‘μ¨ κ°λ°μλ λ°μ΄λ μ¬μ©μ κ²½νμ μ 곡νλ κ²¬κ³ νκ³ νμ₯ κ°λ₯νλ©° μ±λ₯μ΄ λ°μ΄λ μΉ μ ν리μΌμ΄μ μ ꡬμΆν μ μμ΅λλ€. μΉμ΄ κ³μ λ°μ ν¨μ λ°λΌ μλ‘μ΄ λν₯κ³Ό κΈ°μ μ νμ νλ κ²μ΄ μ±κ³΅μ νμμ μ λλ€. JavaScript ν΅ν© μ λ΅μ μ€κ³νκ³ κ΅¬νν λ κΈλ‘λ² μ κ·Όμ±, 보μ λ° μ±λ₯μ μ°μ μνλ κ²μ κΈ°μ΅νμμμ€.