Front νμ΄μ§ λ§λ λ€κΈΈλ μλ° μ€ν¬λ¦½νΈ μ’ λ§μ§ μ€ μμλλ°, νμ΄ν μ°μ΅μ© νλ‘μ νΈμλ€. μ¬μ€ νμ΄ν μ°μ΅λ μλλ€. λ³΅λΆ νλΌκ³ μ½λλ₯Ό λ€ μ 곡ν΄μ€¬μΌλκΉ. μ½λ©μ μλκ³ HTML ꡬ쑰λ₯Ό λ°°μ°λ κ°μμ΄λ€. λ΄μ©μ΄ μμ΄μ νκ³ λ건 μκ³ ν΄λ³Έ κ±° μ 리λ νλ κΈ.
μλ¬΄νΌ κ·Έλ κ² λ³΅λΆν html νμ΄μ§λ₯Ό μ λ‘λνλ©΄ μ μ₯μμ μλ js νμΌκ³Ό μ‘°ν©ν΄μ λ°°ν¬ν΄μ£Όλ κ² κ°λ€. μλλ κ·Έλ κ² λ°°ν¬λΉν νμ΄μ§μ΄λ€.
μ¬νμ λμ λλ΄ νμ΄μ§
λλ΄ νλ§λ λ¨κ²¨μ£ΌμΈμ!
deokdam.spartacodingclub.kr
Open Graph Protocol
μλ‘κ² λ°°μ΄κ±΄ og νκ·Έ; λ§ν¬ 미리보기μ λ΄μ λ΄μ©μ κ·μ νλ λ°©μμ΄λ€. HTML meta νκ·Έμ og μμ±κ°μ μ§μ ν΄μ£Όλ©΄ λλ€.
<html>
<head>
<!-- νμ λ©ν μμ± -->
<meta property="og:title" content="μ λͺ©"/>
<meta property="og:type" content="μμ
,κΈ°μ¬,λμμ_λ±_κ°μ²΄_μ ν"/>
<meta property="og:image" content="μ΄λ―Έμ§URL"/>
<meta property="og:url" content="κ°μ²΄μURL"/>
<!-- μ ν λ©ν μμ± μ€ μΌλΆ-->
<meta property="og:description" content="2λ¬Έμ₯_μ λμ_μ€λͺ
"/>
<meta property="og:locale" content="μΈμ΄_DEFAULT_en_US"/>
</head>
...
</html>
μ¬ν 미리보기 κΈ°λ₯μ ν΄λΉ μ£Όμλ‘ μμ²νμ¬ λ°μ νμ΄μ§ μ 체λ₯Ό νμ±ν λ€μ, μμμ μ΄λ―Έμ§μ κΈμ κ°μ Έμμ 보μ¬μ£Όλ μ€ μμλ€. κ΅³μ΄ κ·Έλ° μκ³ λ₯Ό νμ§ μκΈ° μν΄ headμ λ΄μ©μ μμ½ν΄μ£Όλ ννμΈ κ² κ°λ€.
λ©ν(ꡬ νμ΄μ€λΆ)μμ μ²μμΌλ‘ κ°λ°ν νλ‘ν μ½μ΄λΌκ³ νλ€. μ λ§ λ³ κ² μλ κ² κ°μ κΈ°λ₯μΈλ° μ§κΈμ λͺ¨λκ° μΈ λ§νΌ λ리 νΌμ Έμλ€. μ€λλ λ°μ±νκ² λλ€. μ¬μνλ€κ³ μκ°ν κ²μ΄ μΈμμ λ°κΏλκ°λ κ²μ 보며, λ΄ νΈνν μμ μ κ΅μ ν νμκ° μμμ.
Amazon S3
Amazon S3 - μ μ₯μ μλΉμ€
ν΄λΉ μμ μμ νμν λͺ¨λ 리μμ€(ν°νΈ, μ΄λ―Έμ§, μ½λ λ±)λ S3μμ κ°μ Έμ¨λ€.
<!-- μ΄λ° -->
<meta property="og:image" content="https://2022-01-newyear.s3.ap-northeast-2.amazonaws.com/ogimage.png" />
<!-- μμΌλ‘ -->
<script src="https://2022-01-newyear.s3.ap-northeast-2.amazonaws.com/free_newyear_2022.js"></script>
μΉ νμ΄μ§ νΈμ€ν λ CloudFront - S3λ‘ νκ³ μλ€.

νλ°νΈ κΈ°λ₯ λ―μ΄λ³΄κΈ°
κΆκΈνλ μλ° μ€ν¬λ¦½νΈ νμΌμ μ½μ΄λ³΄κΈ°λ‘ νλ€. μμ μμ μμ±ν html νμ΄μ§μμ μ°Έκ³ νλ js νμΌ μ£Όμλ₯Ό κ·Έλλ‘ νκ³ λ€μ΄κ°μ,

μ€ν¬λ¦½νΈλ₯Ό μ»μλ€. νΉμ κ°λ°μλꡬ(F12 - Source)μμ νμΈν΄λ λλ€.

νλ°νΈμλλ₯Ό μ μλ 건 μλμ§λ§ μΌλ¨ μ€λ°κΏ μλ μλΆλΆμ jquery λΌμ΄λΈλ¬λ¦¬κ² κ±°λ νκ³ λ λ Έλ€. μ΄μ°¨νΌ μ½λ μ©λλκΉ μλ λΆλΆλ§ λ¨κΉ. (νκΈμ΄ κΉ¨μ§μλ μλλ° μ€μν 건 μλλκΉ μΈμ½λ©μ 무μνλ€)
λ§μ κΈ°λ₯μ΄ μλ νμ΄μ§κ° μλλΌμ λ΄μ©λ κ°λ¨νλ€.
$(document).ready(function(){
if (checkPublished()) {
set_bg();
make_footer();
}
list();
$('.btn').attr('onclick','post()')
});
- μ£Όμμ httpκ° ν¬ν¨λμμΌλ©΄ -> λ°°κ²½ μ΄λ―Έμ§ μ€μ (set_bg), footer μ€μ (make_footer)ν΄μ£Όκ³
- λλ΄ λͺ©λ‘κ³Ό μ’ν λ°μμμ λ°κ΅¬λ div μμ 리μ€ν ν λ€ (list)
- λλ΄ λ¨κΈ°κΈ° λ²νΌ ν΄λ¦ -> λλ΄ λ΄μ© μ ν¨μ± 체ν¬νκ³ μλ²μ μ μ‘(post)
getRandomInt()
κ·Έλ°λ° μ νμΌλ§ λ΄€μλ λμ μμ± ν¨μλ λ체 μ΄λμ μ°λ κ±΄μ§ λͺ¨λ₯΄κ² λ€. λμκ° νμν λλ λλ΄ μ’νκ° κ΅¬ν λ λ§κ³ μλ μΆκΈ΄ νλ°, μ μ post()μμλ getRandomInt()λ₯Ό μ½ νμ§ μλλ€.
λλ΄ λ±λ‘ μ msgλ§ λ³΄λ΄μ§λ§ 리μ€νΈλ‘ λ°νλλ κ°μλ μ’νκ° μλ κ±Έ 보면, λ°μ λ©μμ§μ λν μ’νκ°μ μλ²μμ κ³μ°νλ λͺ¨μμ΄λ€. μλλ©΄ μ£½μ ν¨μκ±°λ.
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
post()
[λ°κ΅¬λμ λλ΄ λ¨κΈ°κΈ°] λ²νΌμ ν΄λ¦νλ©΄ post()κ° μ€νλκ³ , λ°μ΄ν°λ₯Ό λ±λ‘νκΈ° μν΄ postνμ μΌλ‘ APIλ₯Ό νΈμΆνλ€. μ λ ₯ν λ©μμ§ μ ν¨μ± κ²μ¬λ₯Ό post()μμ κ°μ΄ μ€ννλ€. μλ₯Ό λ€λ©΄ λ΄μ© λ―Έμ λ ₯, κΈμ μ μ ν, κ·Έ μΈ λ¬΄μν λ¬Έμλ₯Ό κ²μΆνλ μμ μ΄λ€.
function post() {
let msg = prompt('οΏ½λΊ£λοΏ½οΏ½ οΏ½λ
μ °οΏ½μκ½οΏ½οΏ½') // λμΆ© λλ΄ μ
λ ₯νλΌλ λ΄μ©
/// λΉ κ°μ΄λ©΄ μ’
λ£
if (msg === null) {
return
}
/// κΈμμ 5μ λ―Έλ§μ΄λ©΄ μ’
λ£
if (msg.length < 5) {
alert('5ζΉ²οΏ½οΏ½οΏ½ οΏ½λκΈ½ οΏ½λ
μ °οΏ½μκ½οΏ½οΏ½!') // 5κΈμ μ νμλ€λ λ΄μ©
return
}
/// ; λλ \\λ₯Ό μ§μ°κ³ λ©μμ§ μ μ₯νκΈ°
/// μ½λλ‘ μΈμν κΉλ΄ ν΄λΉ λ¬Έμλ€μ μ§μ°λ κ² κ°μ
msg.replace(';','').replace('\\','')
$.ajax({
type: "POST",
url: "https://spartacodingclub.kr/api/free_newyear_2022/write", // λλ΄ μ
λ ₯ μ νΈμΆνλ REST API
data: {'mycode':mycode, 'msg':msg},
success: function (response) {
alert('οΏ½κΎ¨μ¦Ί!'); // μλ£!λΌλ λ΄μ©
window.location.reload();
}
})
}
μμ ν μλ° μ€ν¬λ¦½νΈ νμΌ μ μ©νκΈ°
μ€ν¬λ¦½νΈλ μλ²μ μλ νμΌμ κ°μ Έμμ νμ΄μ§ λ‘λ μ μ μ©νλ―λ‘ λ‘컬μμ μμ ν΄λ΄€μ μλ―Έκ° μλ€. κ·Έλμ μμ ν μλ° μ€ν¬λ¦½νΈλ₯Ό μ μ©νκ³ μΆλ€λ©΄, μ°λ¦¬κ° 건λ릴 μ μλ μ μΌν νμΌμΈ index.htmlμ 컀μ€ν°λ§μ΄μ§ν΄μΌ νλ€. (λ€λ₯Έ λ°©λ²μ΄ μμ μλ μμ§λ§ μΌλ¨ νλ°νΈμλͺ»μΈ λ΄κ° ν μ€ μλ 건 μ΄κ²λ°μ μλ€.)
1. μ μ₯μμ μλ μλ° μ€ν¬λ¦½νΈ νμΌμ μ°Έμ‘°νλ μ΄ μ½λλ₯Ό μ£Όμμ²λ¦¬νλ€.
<!--<script src="https://2022-01-newyear.s3.ap-northeast-2.amazonaws.com/free_newyear_2022.js"></script>-->
2. κΈ°λ₯μ κ·Έλλ‘ λμν΄μΌ νλ―λ‘ jquery CDNμ μΆκ°ν΄μ€λ€. μ΄μ°¨νΌ κΈ°λ³Έ κΈ°λ₯λ§ μ°λ κ² κ°μμ μ무거λ κΈμ΄μ΄
<script src="https://code.jquery.com/jquery-3.6.0.min.js"
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
3. 컀μ€ν°λ§μ΄μ§ ν free_newyear_2022.jsμ λ΄μ©μ <script> νκ·Έ μμ λΆμ¬ λ£λλ€.
<head>
<script>
let mycode = '...';
// Paste code Here
</script>
</head>
4. μμ ν index.htmlμ λ°°ν¬νλ€.

(5. μ΄μ λ ν κΈμ λλ΄λ μ λ ₯ν μ μλ€.)

... λ ν κ±΄μ§ λͺ¨λ₯΄κ² λ€. μ λ° μμ°μ μΈ κ² μ’ νμ
'π νμ΅κ³Ό κ°λ° κΈ°λ‘ > Web' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
NodeJS κΈ°μ΄ μν (0) | 2022.02.03 |
---|---|
JWT(JsonWebToken) - κ°λ (0) | 2021.06.21 |