It has four lessons. All numbers are in arbitrary units, and the page states that it is a toy model, not a forecast.
- The Loop: each lap of the animation is one generation (research โ build โ test โ deploy). You can set how much better each generation is at research and what share of the R&D work the AI does. While humans still do part of the work, each lap has a minimum time (Amdahlโs law); once the work is almost fully automated, each lap is faster than the last.
- Returns: shows how the exponent ฮฑ changes growth in the model dI/dt = cยทIแต . Below 1, growth slows over time; at 1, it is exponential; above 1, it reaches infinity in finite time (a โhard takeoffโ). The analytic solution and the blow-up time are shown.
- Bottlenecks: switch on, one at a time, compute (combined with ideas as a CobbโDouglas production function), serial work that canโt be automated, and physical limits. With the same ฮฑ, the โsoftware onlyโ curve blows up, while the bottlenecked curve bends down to follow the growth of compute.
- Oversight: each generationโs goals drift slightly, and errors compound. When an evaluation catches a drift, the system rolls back and fixes it before continuing. If oversight does not scale with the model, the detection rate falls with each generation and more drifts slip through. The lesson also introduces safety research ideas: evaluations, interpretability, scalable oversight and staged deployment.
AI Image Forensics is a browser-based tool that looks for evidence of whether an image was generated by AI or captured by a camera. It runs entirely in your browser and never uploads the image anywhere.
What it analyzes
- Metadata. It reads EXIF (camera make and model, lens, exposure, GPS, software), XMP, IPTC and JPEG comments. For PNG files it also reads text chunks, where tools such as Stable Diffusion WebUI and ComfyUI often store the prompt, sampler, seed and workflow.
- C2PA (Content Credentials). It detects whether a C2PA manifest is embedded. It then reads the claim generator, the recorded actions and the digital source type. A source type of
trainedAlgorithmicMediameans the image was declared as AI-generated. - File structure. It lists every JPEG segment, PNG chunk, WebP chunk or HEIF/AVIF box. For JPEG files it also estimates the compression quality.
- FFT frequency spectrum. It shows the 2D spectrum of the imageโs noise residual (or its luminance), along with an azimuthally averaged power curve. Regular bright peaks can be traces of upsampling in generative models. Peaks on the JPEG 8ร8 grid are marked separately, because they come from compression, not generation.
- Noise residual. It subtracts a 3ร3 median-filtered copy from the original to reveal the noise layer. Camera sensor noise is usually spread evenly across the frame. Generated images may show little noise, inconsistent texture between regions, or repeating patterns.
- ELA (error level analysis). It re-saves the image as JPEG and amplifies the difference from the original. This is mainly useful for spotting locally edited or pasted-in regions in JPEG files.
How to read the results
The tool does not give an โAI or notโ verdict. Instead, it lists each piece of evidence it finds and rates its strength:
- Strong: AI generation declared in C2PA or XMP, or generation parameters found in the file.
- Moderate: a generator or editing tool named in the metadata.
- Weak: camera EXIF alone, a resolution commonly used by generators, or periodic peaks in the spectrum.
- Inconclusive: no metadata at all. This is common for both generated images and photos that have been through social media or messengers.
The guiding principle is asymmetric. Evidence that is present is meaningful, while evidence that is absent tells you very little, because metadata is easily stripped or forged.
Limitations
- C2PA signatures are not verified. Use contentcredentials.org/verify for that.
- Invisible watermarks such as Googleโs SynthID cannot be detected without the vendorโs own detector.
- Images that were shared through social media or messengers, re-compressed, or captured as screenshots lose most of their metadata and much of their signal-level evidence.
Laser Mosquito Fence is an interactive simulator of a laser mosquito-control device, inspired by the Photonic Fence research project. It models the decision logic (which insect to zap, and when), not the laser hardware.
How it works (five-stage pipeline)
- Detect: insects flying in front of an LED backlight on the far side show up to the camera as dark shadows.
- Classify: each insectโs species is judged from wingbeat frequency and size. Female mosquitoes beat at about 450โ600 Hz, males at 650โ900 Hz and honeybees at about 230 Hz. Confidence rises as observations accumulate.
- Track: a steering mirror turns toward where the insect will be after the system latency. The mirror has a limited turning speed.
- Safety: the whole beam path is checked. If a person is nearby, or a protected insect such as a bee is on the beam line, the shot is held.
- Zap: only biting female mosquitoes get a short pulse. If a shot misses, the system tries again.
Four scenarios
- Evening garden: a mix of insects, the baseline case.
- Mosquito swarm: a throughput test with many mosquitoes queuing for the single mirror.
- Pollinator day: lots of bees, testing whether classification avoids hitting the wrong target.
- Someone walks by: the safety interlock when a person crosses the curtain.
Controls and display
- Sliders: confidence threshold, latency, mirror speed, sensor noise and safety margin.
- Buttons: slow motion, add a person or insects, and disarm.
- Wingbeat spectrum: click any insect to see its spectrum against the frequency bands of each species.
- Results panel: precision (share of zaps that hit female mosquitoes), mosquitoes that escaped, misses, safety holds and zaps per minute.
- Decision log: every zap, miss and hold, with the reason.
Verified: each scenario ran for 15 seconds in a headless browser with no script errors. At default settings, precision was 100% with no male mosquitoes or bees hit, and the person scenario held fire seven times. Raising sensor noise to 100% and lowering the confidence threshold to 50% caused a male mosquito to be hit by mistake and many more misses, which shows how the threshold and sensor noise affect the results.
All numbers are illustrative approximations.
์๋์ด๋ ธ(Arduino)๋ ๋๊ตฌ๋ ์ฝ๊ฒ ๋ํํ ์ ์ ์ ํ๊ณผ ์ฌ๋ฌผ์ธํฐ๋ท(IoT)์ ๋ง๋ค ์ ์๋๋ก ์ ์๋ ์คํ์์ค ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ์ํ๊ณ์ ๋๋ค. ์๋ฃ๋ ์๋์ด๋ ธ(arduino) ์ ๋ฌธ์์ฉ ๊ฐ์ ์๋ฌผ๋ ์ดํฐ ์ ๋๋ค.
๊ตฌ์ฑ
- ๋ณด๋: UNO R3(ATmega328P, 16 MHz)์ UNO R4 Minima(RA4M1, 48 MHz) ์ค ๊ณ ๋ฅผ ์ ์์ต๋๋ค. ํค๋ ํ, PWM ~ ํ์, LยทTXยทON LED, ๋ฆฌ์ ๋ฒํผ์ ๊ทธ๋ ธ๊ณ , ์ฌ์ฉ ์ค์ธ ํ์ ๊ธ์์ผ๋ก ํ์๋ฉ๋๋ค. ๊ณต์ ๋ก๊ณ ๋ ๋ฃ์ง ์์์ต๋๋ค.
- ๋ธ๋ ๋๋ณด๋ ๋ถํ: LED(220 ฮฉ), RGB LED, ํธ์ ๋ฒํผ(ํ๋ค์ด / GNDยทํ์ ๋ฐฐ์ ), ๊ฐ๋ณ์ ํญ, ์กฐ๋ ์ผ์, TMP36 ์จ๋ ์ผ์, SG90 ์๋ณด, ํผ์์กฐ ๋ถ์ , 16ร2 LCD๋ฅผ ๋์ ์ ์์ต๋๋ค. ๋ถํ์ ๋ํ๊ฑฐ๋ ๋นผ๊ณ ํ์ ๋ฐ๊ฟ ์ ์๊ณ , ๋ฒํผ์ ๋๋ฅด๊ณ ์๊ธฐ, ๊ฐ๋ณ์ ํญ์ ๋๋๊ทธ, ๋นยท์จ๋๋ ์ฌ๋ผ์ด๋๋ก ์กฐ์ํฉ๋๋ค.
- ์ ์ ์: ํ ์ํ์ ๋ฐ๋ผ ๋ฐ๋๋๋ค. ๋นจ๊ฐ์ HIGH, ์ฃผํฉ์ PWM, ๋ณด๋ผ๋ tone, ํ๋์ ์ ๋ ฅ์ ๋๋ค.
- ์ฝ๋ ํธ์ง๊ธฐ: ๊ตฌ๋ฌธ ๊ฐ์กฐ๊ฐ ๋๊ณ , ์ง๊ธ ์คํ ์ค์ธ ์ค์ ์ด๋ก์์ผ๋ก ํ์ํฉ๋๋ค. Ctrl+Enter๋ก ์ ๋ก๋ํ๊ณ , ์ผ์์ ์งยท๋ฆฌ์ , ์๊ฐ ๋ฐฐ์จ 0.25โ4ร๋ฅผ ์ง์ํฉ๋๋ค.
- ์๋ฆฌ์ผ: ๋ชจ๋ํฐ์์ ๋ณด๋๋ก ๊ธ์๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค. ํ๋กํฐ๋
์ด๋ฆ:๊ฐํ์์ ์ถ๋ ฅ์ ์ฌ๋ฌ ์ ์ผ๋ก ๊ทธ๋ฆฝ๋๋ค. - ํ ํจ๋: D0โA5 ์ํ ํ์ ์ฌ์ฉ ์ค์ธ ํ์ ํํ์ ๋ณด์ฌ์ค๋๋ค.
์์ 12๊ฐ: Blink, ๋ฒํผ, ํ์ด๋(PWM), ๊ฐ๋ณ์ ํญ ์ฝ๊ธฐ, ์ ํธ๋ฑ(millis ์ํ ๊ธฐ๊ณ + ๋ณดํ์ ๋ฒํผ), ์๋ณด ์ค์, ๋ฉ๋ก๋(ใ์์ ๋ณใ, ์ค์ ์๋ฆฌ), ์ผ๊ฐ๋ฑ, LCD ์จ๋๊ณ, RGB ๋ฌด์ง๊ฐ, ์๋ฆฌ์ผ ๋ช ๋ น, ๋ ์๋ ์ ๋ ฅ(INPUT โ INPUT_PULLUP์ผ๋ก ๊ณ ์ณ ๋ณด๊ธฐ).
์ค์๋ฅผ ์๋ ค ์ฃผ๋ ๊ฒฝ๊ณ
- PWM์ด ์ ๋๋ ํ์ analogWrite๋ฅผ ์ด ๊ฒฝ์ฐ
- pinMode ์์ด HIGH๋ฅผ ์จ์ LED๊ฐ ํฌ๋ฏธํ๊ฒ ์ผ์ง๋ ๊ฒฝ์ฐ
- Serial.begin์ ๋น ๋จ๋ฆฐ ๊ฒฝ์ฐ
- D0ยทD1์ด ์๋ฆฌ์ผ๊ณผ ์ถฉ๋ํ๋ ๊ฒฝ์ฐ
- tone์ ๋ ํ์์ ๋์์ ์ด ๊ฒฝ์ฐ
- LCD์ ํ๊ธ์ ์ถ๋ ฅํ ๊ฒฝ์ฐ
ํ๊ณ: ์ค์ผ์น๋ฅผ ์๋์ด๋ ธ C์ ์์ฃผ ์ฐ๋ ๋ถ๋ถ๋ง JavaScript๋ก ๋ฐ๊ฟ ์คํํฉ๋๋ค. ๊ทธ๋์ ์ ์ ๋๋์ , ํฌ์ธํฐ, ๊ตฌ์กฐ์ฒด, static ์ง์ญ ๋ณ์๋ ์ค์ ์ ๋ค๋ฅด๊ฒ ๋์ํ๊ฑฐ๋ ์ง์๋์ง ์์ต๋๋ค. ์ธ๋ฏธ์ฝ๋ก ์ ๋น ๋จ๋ ค๋ JavaScript ๊ท์น ๋๋ฌธ์ ์ค๋ฅ ์์ด ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๊ฒ์ฆ: ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ์์ 12๊ฐ ์์ ๋ฅผ ๋ชจ๋ ๋ณํยท์คํํด ์ค๋ฅ๊ฐ ์๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
- ๊ฐ๋ณ์ ํญ 512 โ 2.50 V, TMP36 24 ยฐC โ LCD 23.8 ยฐC(ADC ์์ํ ๋๋ฌธ)๊ฐ ์ ํํ ๋์ต๋๋ค.
- ๋ฒํผ ๋๋ฆ/๋์ ๋ฐ๋ผ LED๊ฐ ์ผ์ง๊ณ ๊บผ์ง๊ณ , ์๋ฆฌ์ผ ๋ช ๋ น โ1โ์ ๋ณด๋ด๋ฉด LED๊ฐ ์ผ์ง๋๋ค.
- ๋ ์๋ ์ ๋ ฅ์ 0๊ณผ 1์ ์ค๊ฐ๋ค๊ฐ INPUT_PULLUP์ผ๋ก ๊ณ ์น๋ฉด 1๋ก ์์ ๋ฉ๋๋ค.
while(true);๊ฐ์ ๋ฌดํ ๋ฃจํ์์๋ ํ์ด์ง๊ฐ ๋ฉ์ถ์ง ์์ต๋๋ค.
Sources:
Microduck Simulator is an interactive 3D simulator of Pollen Roboticsโ Microduck, a bipedal duck robot about 25 cm tall and 800 g. It is built on specifications taken from the official microduck runtime and microduck_rl training repositories.
Real robot details used
- Servos: 15 Dynamixel XL330s. IDs are 20โ24 for the left leg, 30โ34 for the neck, head and beak, and 10โ14 for the right leg. The beak (ID 34) is excluded from every policyโs actions.
- Pose and limits: the actual HOME pose and joint limits. Sliders use the real robot convention (radians, signs as in HOME).
- Policy loop: runs at 50 Hz with a 61-D observation (angular velocity, gravity, joint positions, joint velocities, last action, commands) and a 14-D action, both shown live as a heatmap.
- Training settings: velocity command ranges of vx ยฑ0.4 m/s, vy ยฑ0.3 m/s and ฯz ยฑ1.0 rad/s; an air-time reward window of 0.125โ0.3 s; 2 cm foot clearance; battery voltage from 6.5 to 8.2 V; ยฑ1ยฐ backlash; and a ยฑ0.3 m/s push range.
- Policy names: the top bar shows the real task ID for each mode, such as
Mjlab-Velocity-Flat-MicroDuck.
Behaviours
- Walk: drive with the on-screen joystick or W A S D / Q E, and adjust body pose and head commands. Lengthening the gait period pushes air time out of the reward window.
- Roller skates: passive wheels under the feet and a swizzle glide with no foot lift.
- Sit ยท stand (Y): switched by a posture-flag command.
- Beak pick (G): the phase-encoded command can be seen circling in the observation panel. The duck can pick up the block and carry it while walking.
- Ball kick (K / L): shifts weight onto the support foot, then kicks a 70 mm ball.
- Forward roll (R): rolls over the head and lands back on its feet.
- Falls and stand-up: a push that moves the capture point past 62 mm knocks the robot over, and it gets back up by itself.
- Joint control: sliders for all 15 servos, plus the SIT and FOLD keyframes as presets.
- Quack (Space): opens the beak and plays a sound.
Panels
- Live readout: state, commanded and actual speed, trunk tilt, support, capture point and battery.
- Policy I/O: the 61-D observation and 14-D action.
- Foot contact: a contact timeline and the last air time for each foot.
- Servo table: target, actual and error for all 15 servos.
- Controls and overlays: camera presets, a support-polygon and centre-of-mass overlay, backlash and battery settings, and time scale.
Limitations: the motion comes from a kinematic generator (gait phases plus inverse kinematics), not from the trained ONNX policy or MuJoCo physics. Leg geometry is approximate, so poses can differ somewhat from the real robot, especially when the real SIT and FOLD keyframe values are applied directly.
Verified: headless Chromium ran every mode without script errors. Walking air time was 180 ms, inside the reward window. Push โ fall โ stand-up, block pickup and ball kick all worked, and there is no horizontal scroll at phone width.
Sources:
ReedโSolomon Lab is an interactive browser simulator of ReedโSolomon error correction. It runs a real encoder and decoder over GF(2โธ), and every step of the repair updates live as you damage bytes.
Pipeline (top to bottom)
- Status and budget bar: shows how much of the correction budget
2e + s โค n โ kis used. Errors cost 2 slots and erasures cost 1. The result is labeled Clean, Corrected, Decoder failure or Miscorrected. - Step 1 โ Encode: message bytes plus parity bytes form the codeword. The generator polynomial g(x) is shown.
- Step 2 โ Channel: click received bytes to add errors (random values) or erasures (flagged positions). You can also add random hits or bursts.
- Step 3 โ Syndromes: non-zero syndromes show that damage was detected.
- Step 4 โ BerlekampโMassey: computes the error locator ฮ(x), plus the erasure locator ฮ(x) when erasures are present.
- Step 5 โ Chien search: a bar chart of |ฮ| per byte position. Roots, which mark the error locations, are highlighted green.
- Step 6 โ Forney: a table of error values and the XOR fix applied at each position.
- Step 7 โ Decoded: repaired bytes are highlighted, and the sent, received and decoded text are compared side by side.
Scenarios: Sandbox, QR Code 1-M RS(26,16), Audio CD C2 RS(28,24), DVB-T RS(204,188) and Deep Space RS(255,223). Each comes with notes on how that code is used in practice. You can also edit the message and the number of parity symbols.
Verified: 4,000 random fuzz tests within the correction limit all decoded exactly. Damage beyond the limit never crashes the decoder; it is reported as a failure or a miscorrection.
Three-Body Lab is an interactive browser simulator of the classical three-body problem. It uses the same dark sidebar-and-canvas layout as the Physics Playground.
Configurations
- Figure-Eight: a stable periodic orbit where three equal masses share one curve (Moore 1993, Chenciner & Montgomery 2000).
- Lagrange Triangle: an equilateral arrangement that rotates rigidly. It is unstable with equal masses and stable when one mass dominates.
- Butterfly I: an unstable periodic orbit found by ล uvakov & Dmitraลกinoviฤ in 2013.
- Pythagorean: Burrauโs problem. Masses 3, 4 and 5 start at rest, go through chaotic close encounters, and one body is ejected.
- Hierarchical: a star, planet and moon, showing how a close pair with a distant third stays stable.
- Random Start: random initial conditions that usually turn chaotic.
Features
- Ghost twin: a copy of the system nudged by a tiny amount (1e-6 by default). A log-scale graph tracks how fast the two copies diverge, which shows chaos directly.
- Edit mode: pause the simulation, then drag bodies to move them and drag the arrow tips to set their velocities.
- Controls: speed, trail length, gravitational softening, twin nudge size, and a mass multiplier for each body.
- Live readouts: time, energy and its conservation error, angular momentum, closest separation, steps per frame, and twin separation.
- Navigation: the view auto-fits by default. You can also zoom with the scroll wheel and pan by dragging empty space. Bodies that leave the screen get an edge arrow with their distance.
- Shortcuts: Space to play or pause, R to reset.
Physics: the simulator uses Newtonian gravity with G = 1 and a leapfrog integrator. The time step shrinks automatically when bodies come close. A short note in the sidebar explains the history: Poincarรฉ showed that no general closed-form solution exists, so the problem can only be solved numerically.
I built and published Build a Transformer, a page that shows how a developer codes the Transformer from โAttention Is All You Needโ in PyTorch, one line at a time.
Layout
- Left, code editor: each chapter has PyTorch code you could actually run.
- โจ Type it out types the code line by line and explains the important lines as they appear.
- Click any line to see what it does and how it changes the tensor shapes.
- Right, visuals: a diagram of how tensor shapes change, plus heat maps of real numbers. The heat maps come from a tiny Transformer (d_model = 8) that runs in your browser.
- Bottom, console: โถ Run cell (Ctrl+Enter) prints results such as
.shapeand parameter counts. They are calculated from the hyperparameters you set in the sidebar.
The 10 chapters
- Embeddings (รโd_model)
- Sinusoidal positional encoding
- Scaled dot-product attention
- Multi-head attention (splitting heads with view/transpose)
- Feed-forward network
- Encoder layer (Add & Norm)
- Decoder layer (causal mask and cross-attention)
- Full model (the output layer reuses the embedding weights)
- Training loop: Adam, a warm-up learning-rate schedule, label smoothing and teacher forcing
- Inference: greedy decoding you can step through one token at a time
Hyperparameters
- Base / Big / Tiny presets are available. The parameter counts come out at about 63.1M for Base and 214M for Big, which closely match the paperโs figures of about 65M and 213M.
- If d_model canโt be divided evenly by h (for example 512 and 12), a warning appears and the console shows an
AssertionError.
Things to keep in mind
- The tiny model behind the heat maps uses random weights that were never trained, so its attention patterns donโt mean anything.
- The German translation in the inference chapter is an example of what a trained model would produce, not real output.
Transformer Architecture is an interactive page that walks through the transformer, the architecture behind ChatGPT, in five stages
Tokens & Embeddings
- Splits your text into tokens (long words become pieces) and gives each one a token ID.
- For a selected token, shows its embedding, the positional encoding and their sum (the input vector) as heat maps, alongside a table of the sin/cos positional encodings.
- A 2D meaning map shows similar words clustering together, and that โking โ man + woman โ queenโ.
Self-Attention
- Computes real dot products from Q, K and V, divides by โd and applies softmax. You get arcs between tokens, the attention matrix and a step-by-step table for the selected row.
- Three heads to switch between: pronoun โ noun, previous token, and uniform averaging.
- In the classic example โThe animal didnโt cross the street because it was too tired / wideโ, โitโ attends to animal (75%) with tired and to street (75%) with wide. Turn on the GPT-style causal mask and โitโ can no longer see the adjective that comes after it, so it is left split between the two nouns.
Transformer Block: an animated step-through of LayerNorm โ multi-head attention โ residual add โ LayerNorm โ feed-forward โ residual add โ ร N layers โ logits. It includes a size comparison of the original Transformer, GPT-2 and GPT-3.
Next-Token Prediction: generates text one token at a time from logits, using temperature-scaled softmax and top-k sampling. Probability bars and entropy are shown, and you can click a candidate to choose the next token yourself.
How It Learns: on โthe cat sat on the ___ โ matโ, shows the cross-entropy loss and its gradient (p โ 1), with a curve of the loss falling at each gradient-descent step.
Some parts are simplified for teaching:
- Vectors have 2โ16 dimensions instead of thousands.
- The attention-head weights are hand-designed so each headโs job is easy to see.
- Next-token prediction uses a small n-gram model built from about 60 sentences instead of a neural network.
์์๋ฅผ ์ฐพ๋ ๋ค ๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ณ์ฐ์๊ณผ ํจ๊ป ํ ๋จ๊ณ์ฉ ๋ณด์ฌ์ค๋๋ค. ๋ชจ๋ ๋ฐฉ๋ฒ์์ ์ฌ์ยท์ด์ ยท๋ค์ยท๊ฒฐ๊ณผ๊น์ง ํ ๋ฒ์ ๋ฒํผ๊ณผ ์๋ ์กฐ์ (โ/โ, Space)์ ์ธ ์ ์์ต๋๋ค.
- ์ํ ๋๋์
n รท d = ๋ชซ โฆ ๋๋จธ์ง์์ ์ฐจ๋ก๋ก ๋ณด์ฌ์ฃผ๊ณ , ๋๋จธ์ง๊ฐ 0์ด ๋๋ ์๊ฐ ํฉ์ฑ์๋ก ํ์ ํฉ๋๋ค. - ์ โn๊น์ง๋ง ๋๋๋ฉด ๋๋์ง ์์ง์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค.
- ๋ชจ๋ ์๋ฅผ ์ํํ๋ ๋ฐฉ์๊ณผ 6kยฑ1 ์ต์ ํ๋ฅผ ๋น๊ตํ ์ ์์ต๋๋ค. ์ต๋ 12์๋ฆฌ๊น์ง ์ ๋ ฅํ ์ ์์ต๋๋ค.
- ์๋ผํ ์คํ ๋ค์ค์ ์ฒด1๋ถํฐ N(์ต๋ 600)๊น์ง ๊ฒฉ์์์ ์์ p๋ฅผ ์ฐพ๊ณ , pยฒ๋ถํฐ p์ฉ ๋ฐฐ์๋ฅผ ์ง์ ๋๊ฐ๋๋ค.
- ์ง๊ธ ์ง์ฐ๋ ์์ ์(์: 80 = 2 ร 40)์ ๋ณด์ฌ์ฃผ๊ณ , pยฒ > N์ด ๋๋ฉด ๋จ์ ์๊ฐ ๋ชจ๋ ์์๋ผ๋ ๊ฒ์ ํ์ธํฉ๋๋ค.
- ์์ ๊ฐ์ ฯ(N)๊ณผ ๊ทผ์ฟ๊ฐ N/ln N์ ๋น๊ตํฉ๋๋ค.
- ์์ธ์๋ถํด์งง์ ๋๋์ ๊ณผ ์์ธ์ ๋๋ฌด๋ฅผ ํจ๊ป ๊ทธ๋ฆฝ๋๋ค.
- ๊ฒฐ๊ณผ๋ฅผ
360 = 2ยณ ร 3ยฒ ร 5์ฒ๋ผ ์ฐ๊ณ , ์ฝ์ ๊ฐ์(3+1)ร(2+1)ร(1+1) = 24๋ ๊ณ์ฐํฉ๋๋ค. ์ต๋ 13์๋ฆฌ๊น์ง ์ ๋ ฅํ ์ ์์ต๋๋ค. - ๋ฐ๋ฌโ๋ผ๋น ํ์ nโ1 = 2หขยทd๋ก ๋ถํดํ ๋ค, ์ ๊ณฑ-๊ณฑ์ ํ๋ก a^d mod n์ ๊ณ์ฐํ๊ณ ์ ๊ณฑํ๋ฉฐ โ1์ด ๋์ค๋์ง ํ์ธํฉ๋๋ค.
- ํ๋ฅด๋ง ์ํ๊ณผ ๋น๊ตํ๊ณ , ๋ฐ 12๊ฐ๋ก ๋ฐ๋ณต ํ์ ํฉ๋๋ค.
- ์นด๋ง์ดํด ์ 561, ๋ฐ 2๋ฅผ ์์ด๋ 2047, 19์๋ฆฌ ์์ 2โถยนโ1 ๊ฐ์ ์์ ๊ฐ ๋ค์ด ์์ต๋๋ค.
ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ๋ก ์๋ ค์ง ๊ฒฐ๊ณผ์ ๋ง์ถฐ ํ์ธํ์ต๋๋ค.
- 91 = 7 ร 13, 1,000,001 = 101 ร 9901, 2ยณยนโ1์ ์์๋ก ๋์ต๋๋ค.
- ฯ(120) = 30, ฯ(600) = 109์ ๋๋ค.
- 600,851,475,143 = 71 ร 839 ร 1471 ร 6857์ ๋๋ค.
- 2047์ ๋ฐ 2์ 11๋ง ํต๊ณผํ๋ ๊ฑฐ์ง ์ฆ์ธ ์ฌ๋ก๋ก ๋์ค๊ณ , 2โถยนโ1์ 12๊ฐ ๋ฐ์ ๋ชจ๋ ํต๊ณผํด ์์๋ก ํ์ ๋ฉ๋๋ค.
์ ๋ ฅ ์๋ฆฟ์์๋ ์ํ์ ๋์์ต๋๋ค. ์ํ ๋๋์ ๊ณผ ์์ธ์๋ถํด๊ฐ โn๊น์ง ๋น ์ง์์ด ๊ณ์ฐ์ ๋๋ผ ์ ์๋ ๋ฒ์์์๋ง ํ์ ํ๋๋ก ํ๊ธฐ ์ํด์์ ๋๋ค. ๊ทธ๋ณด๋ค ํฐ ์๋ ๋ฐ๋ฌโ๋ผ๋น ํ์ ์ผ๋ก ํ์ธํ๋ฉด ๋ฉ๋๋ค.
Wireless Charging is an interactive simulator that explains wireless phone charging (the Qi standard) in four lessons.
- Induction: alternating current in the padโs coil creates a magnetic field, which induces a voltage in the phoneโs coil. Dragging the phone changes the coupling factor k and the induced voltage, and the transmitter current and induced voltage are plotted side by side. Switch to DC and a voltage appears only while the current is rising, then drops to zero.
- Alignment: a top view of the pad shows a heat map of efficiency at each phone position, with a ring marking the 50% boundary. You can change case thickness and coil quality Q and see how much power is wasted as heat at each position. You can also turn on magnets that pull the phone to the centre, as MagSafe and Qi2 do.
- Resonance: a seriesโseries LC circuit is computed with complex impedance. A frequency sweep from 110 to 205 kHz plots power and efficiency, and removing the capacitors drops the delivered power to almost zero. With strong coupling and a light load, the resonance peak splits in two (the Split! button).
- Charging Session:
- The handshake between pad and phone (ping โ identification โ power transfer), with the control packets the phone sends back.
- Bars showing how many watts enter each stage (wall โ inverter โ coil โ rectifier โ battery) and how many are lost along the way.
- The CC/CV charging curve and temperature for a 4500 mAh battery. Charging slows when the phone gets warm.
- Dropping a coin on the pad triggers foreign-object detection (FOD), which stops power transfer.
Coil dimensions and loss values are simplified approximations of real products, for illustration.
Snow Formation Lab is an interactive simulator that follows one snowflake from rising air to the ground in four stages.
Stage 1 ยท Rising Air
- Set surface temperature, dew point, environmental lapse rate and lift height, and watch an air parcel rise and turn into cloud.
- Below the cloud base the parcel cools at the dry adiabatic rate (9.8 ยฐC/km); inside the cloud it cools at the moist adiabatic rate, computed from the full formula.
- The scene marks the cloud base, 0 ยฐC, โ10 ยฐC (ice nuclei become active), the dendritic growth zone (โ12 to โ18 ยฐC) and โ38 ยฐC (droplets freeze on their own).
- Based on cloud-top temperature, the cloud is classed as warm, supercooled or mixed-phase (snow-producing).
- Presets: winter front, summer storm, dry day.
Stage 2 ยท Ice vs Droplets (Bergeron process)
- A microscope view shows vapor moving from supercooled droplets onto ice crystals. The droplets shrink, and the crystals grow until they are heavy enough to fall.
- A chart plots saturation vapor pressure over water and over ice, and marks where the gap between them peaks, near โ11.8 ยฐC.
- You can seed the cloud by clicking or with silver iodide (AgI). Below โ38 ยฐC every droplet freezes spontaneously.
Stage 3 ยท Crystal Growth
- Click a temperature and supersaturation on the Nakaya diagram and that crystal grows live.
- Plate crystals grow on Reiterโs (2005) hexagonal diffusion model. As conditions change they progress from hexagonal plates to sectored plates, broad-branched stars, stellar dendrites and fern-like dendrites, and you can see vapor being used up around the crystal.
- Needles and columns, including hollow columns, are drawn as 3D prisms.
- Presets: dendrite, plate, needle, sector, column, fern.
Stage 4 ยท The Fall
- Drag points on the temperature profile from the 3 km cloud base down to the ground. Humidity sets the wet-bulb temperature, which decides whether flakes melt or refreeze.
- The ground result is classified as snow, wet snow, sleet (ice pellets), freezing rain or rain, and shown as accumulated snow, icicles or puddles.
- Each of the five presets (snow, rain, sleet, freezing rain, and snow at +2 ยฐC in dry air) gives its expected result 100% of the time.
Verified: all four stages ran in a headless browser with no script errors and no horizontal scroll at phone width.
Limitations
- Crystal shapes come from mapping Reiter-model parameters onto regions of the Nakaya diagram, not from an empirical growth formula.
- Melting and refreezing in the fall stage are simplified for teaching.
- Rounding in the step-by-step calculation can make crystals slightly asymmetric.
ํ ์คํธ๋ฅผ ์ ๋ ฅํ์๋ ์ธ๊ณต์ง๋ฅ์ด ์์ฑํ ๊ธ์ธ์ง ํ๋ณํ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค. OpenAI๋ Claude API๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ณต๊ฐ ๋ชจ๋ธ์ ์ง์ ๋๋ ค Perplexity์ Binoculars ์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
- ๊ธ์ ๋ฃ๊ณ ์ ์ ๊ณ์ฐ์ ๋๋ฅด๋ฉด Binoculars ์ ์, log-PPL, X-PPL, PPL์ด ๋์ต๋๋ค. ํ ํฐ๋ณ๋ก ๋ชจ๋ธ์ด ์ผ๋ง๋ ์์ํ๋์ง๋ ์์ผ๋ก ํ์๋ฉ๋๋ค.
- ์ธก์ ๋ฐฉ์์ ๋ ๊ฐ์ง์ ๋๋ค.
- Binoculars: ๋ชจ๋ธ 2๊ฐ๋ก ๋น๊ตํฉ๋๋ค. ๊ณ์ฐ ๋ฐฉ์์ ๊ณต์ ๊ตฌํ๊ณผ ๊ฐ๊ณ , ์ ์๊ฐ ๋ฎ์์๋ก AI ์ชฝ์ ๋๋ค.
- Perplexity๋ง: ๋ชจ๋ธ 1๊ฐ๋ก ์ธก์ ํ๋ฉฐ, AI/์ฌ๋ ํ์ ์ ๋ด๋ฆฌ์ง ์์ต๋๋ค.
- ํ๋ฆฌ์ ์ ๋ ๊ฐ์ง์ด๊ณ , ๋ชจ๋ธ ID๋ฅผ ์ง์ ์ ๋ ฅํ ์๋ ์์ต๋๋ค.
- ํ๊ตญ์ด์ฉ: Qwen2.5 0.5B ๊ณ์ด ๋ ๊ฐ๋ก, ๋ชจ๋ธ๋น 0.5~0.8GB์ ๋๋ค.
- ์์ด์ฉ ๊ฒฝ๋: SmolLM2 135M/360M์ ๋๋ค.
- ์ฒ์ ํ ๋ฒ๋ง ๋ด๋ ค๋ฐ๊ณ , ์ดํ์๋ ๋ธ๋ผ์ฐ์ ์บ์๋ฅผ ์๋๋ค.
์๊ณ๊ฐ์ ๋จผ์ ๋ณด์ ํด์ ์ฐ์ธ์. ๊ธฐ๋ณธ๊ฐ 0.90์ ๋ ผ๋ฌธ์ Falcon-7B ์กฐํฉ ๊ธฐ์ค์ด๋ผ ์ํ ๋ชจ๋ธ์๋ ๋ง์ง ์์ต๋๋ค. ์ถ์ฒ๋ฅผ ์๋ ๊ธ์ ์ฌ๋ฌ ๊ฐ ์ธก์ ํ๊ณ ๊ธฐ๋ก ํ์์ ์ ๋ต(์ฌ๋/AI)์ ํ์ํ๋ฉด, ์ง๊ธ ๋ชจ๋ธ ์กฐํฉ์ ๋ง๋ ์๊ณ๊ฐ์ ์ ์ํฉ๋๋ค. ์์ ๊ธ๋ก ์ธก์ ํ๋ฉด ์ ๋ต์ด ์๋์ผ๋ก ํ์๋ฉ๋๋ค.
์์ ๋ ์
- 0.5B ์ํ ๋ชจ๋ธ์ ํ๊ตญ์ด ์ดํด๊ฐ ์ ํ์ ์ ๋๋ค. ๊ทธ๋์ ์ ํ๋๋ณด๋ค๋ ์๋ฆฌ๋ฅผ ์ง์ ํ์ธํด ๋ณด๋ ์คํ ๋๊ตฌ๋ก ๋ณด์๋ ๊ฒ ๋ง์ต๋๋ค.
SHA ํด์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๋ฌธ์ ํด์๋ฌธ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ์๊ฐํํด์ ๋ณด์ฌ์ฃผ๋ ๊ต์ก ์๋ฃ์ ๋๋ค.
๊ตฌ์ฑ (7๋จ๊ณ)
- ํจ๋ฉ๊ณผ ๋ธ๋ก ๋ถํ : ๋ฉ์์ง, 0x80, 0 ์ฑ์, 64๋นํธ ๊ธธ์ด๋ฅผ ์์ผ๋ก ๊ตฌ๋ถํด 512๋นํธ ๋ธ๋ก ์์ ๋ณด์ฌ์ค๋๋ค. ๋ธ๋ก์ด ์ฌ๋ฌ ๊ฐ๋ฉด ์นฉ์ ๋๋ฌ ๋ธ๋ก์ ๊ณ ๋ฆ ๋๋ค.
- ์์ถ ํจ์ ์งํ: 64๋ผ์ด๋์ ๋ง์ง๋ง ํฉ์ฐ ๋จ๊ณ๋ฅผ ํ์๋ผ์ธ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. ์ฌ์/์ด์ /๋ค์ ๋ฒํผ์ด๋ โ/โ, Space๋ก ์ด๋ํฉ๋๋ค.
- ์์ ๋ณ์ aโh: ๋ผ์ด๋ ์ ํ ๊ฐ์ ๋ณด์ฌ์ค๋๋ค. ์๋ก ๊ณ์ฐ๋๋ a์ e๋ฅผ ๊ฐ์กฐํ๊ณ , ฮฃ1, Ch, K, W, T1, ฮฃ0, Maj, T2 ๊ณ์ฐ์์ ์ค์ ๊ฐ๊ณผ ํจ๊ป ํ์ํฉ๋๋ค.
- ๋ฉ์์ง ์ค์ผ์ค: WโโWโโ ํ์์ ํ์ฌ ์๋์ ๊ทธ ์๋๊ฐ ์์กดํ๋ 4๊ฐ ์๋(ฯ0, ฯ1 ๊ณ์ฐ)๋ฅผ ๊ฐ์กฐํฉ๋๋ค.
- ๋นํธ ๋จ์ ๋ ผ๋ฆฌ: Ch(e์ ๋นํธ๋ก f/g ์ ํ), Maj(๋ค์๊ฒฐ), ฮฃ1(ํ์ ํ XOR)์ 32๋นํธ ๋จ์๋ก ์๊ฐํํฉ๋๋ค.
- ๋์ฌํ ํจ๊ณผ: ์ ๋ ฅ 1๋นํธ๋ฅผ ๋ฐ๊พผ ๊ฒฝ์ฐ์ ๋น๊ตํด, ๋ผ์ด๋๋ณ๋ก aโh์์ ๋ฌ๋ผ์ง ๋นํธ ์๋ฅผ ๊ทธ๋ํ๋ก ๋ณด์ฌ์ค๋๋ค. ์ฝ 128๋นํธ๋ก ์๋ ดํฉ๋๋ค.
- ํด์๊ฐ: ์ต์ข ๋ค์ด์ ์คํธ์ 1๋นํธ ๋ณ๊ฒฝ ์์ ๋ค์ด์ ์คํธ๋ฅผ ๋๋ํ ๋๊ณ , ๋ฌ๋ผ์ง ๊ธ์๋ฅผ ๊ฐ์กฐํฉ๋๋ค. ๋ณต์ฌ ๋ฒํผ์ด ์์ต๋๋ค.
์ ๋ ฅ๊ณผ ์์
- ํ ์คํธ(UTF-8) ๋๋ HEX๋ก ์ ๋ ฅํ๊ณ , SHA-256๊ณผ SHA-224 ์ค ์ ํํ ์ ์์ต๋๋ค.
- ์์ : โabcโ, ๋น ๋ฌธ์์ด, ํ๊ธ ๋ฌธ์ฅ, 2๋ธ๋ก ์์ , HEX ๋ฐ์ดํธ ์ง์ ์ ๋ ฅ.
๊ฒ์ฆ: Node ํ์ค crypto ๊ฒฐ๊ณผ์ 316๊ฐ ์ฌ๋ก(๋ฌด์์ ์ ๋ ฅ 300๊ฐ ํฌํจ)๊ฐ ๋ชจ๋ ์ผ์นํ๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ํ์ด์ง์์๋ ๋ธ๋ผ์ฐ์ WebCrypto ๊ฒฐ๊ณผ์ ๋น๊ตํด ์ผ์น ๋ฐฐ์ง๋ฅผ ํ์ํฉ๋๋ค.
AES ์ํธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๋ฌธ์ ์ํธ๋ฌธ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ์๊ฐํํด์ ๋ณด์ฌ์ฃผ๋ ์ธํฐ๋ํฐ๋ธ ์๋ฎฌ๋ ์ดํฐ ์ ๋๋ค.
๊ตฌ์ฑ
- ๋ผ์ด๋ ํ์๋ผ์ธ: ์ด๊ธฐ AddRoundKey๋ถํฐ ๋ง์ง๋ง ๋ผ์ด๋๊น์ง ๋ชจ๋ ์ฐ์ฐ์ ์นธ์ผ๋ก ํ์ํฉ๋๋ค. AES-128 ๊ธฐ์ค 40๋จ๊ณ์ด๊ณ , ํด๋ฆญํ๊ฑฐ๋ ์ฌ์/์ด์ /๋ค์ ๋ฒํผ(๋๋ โ/โ, Space)์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ด์ ์ํ โ ์ฐ์ฐ โ ์ดํ ์ํ: 4ร4 ์ํ ํ๋ ฌ์์ ์นธ์ ํด๋ฆญํ๋ฉด ๊ทธ ๋ฐ์ดํธ์ ๊ณ์ฐ ๊ณผ์ ์ด ๋์ต๋๋ค.
- SubBytes: 16ร16 S-box์์ ํยท์ด๋ก ๊ฐ์ ์ฐพ๋ ๊ณผ์ ์ ๊ฐ์กฐํฉ๋๋ค.
- ShiftRows: ํ ๋๋ฆฌ ์์ผ๋ก ๋ฐ์ดํธ๊ฐ ์๋ ์ํ๋ ์ด์ ํ์ํด ์ด๋์ ๋ณด์ฌ์ค๋๋ค.
- MixColumns: ๊ณ ์ ํ๋ ฌ ร ์ด ๋ฒกํฐ์ GF(2โธ) ๊ณฑ์ ๊ณผ XOR ๊ณ์ฐ์์ ๋ณด์ฌ์ค๋๋ค.
- AddRoundKey: ๋ผ์ด๋ ํค์์ XOR์ ๋นํธ ๋จ์๋ก ๋ณด์ฌ์ค๋๋ค.
- ํค ํ์ฅ: ์ ์ฒด ๋ผ์ด๋ ํค ๋ชฉ๋ก์์ ํ์ฌ ์ฌ์ฉํ๋ ํค๋ฅผ ๊ฐ์กฐํ๊ณ , RotWord, SubWord, Rcon ๊ณ์ฐ ๊ณผ์ ์ ๋ณด์ฌ์ค๋๋ค.
- ๋์ฌํ ํจ๊ณผ: ํ๋ฌธ 1๋นํธ๋ฅผ ๋ค์ง์ ๋ธ๋ก๊ณผ ๋น๊ตํด, ๋จ๊ณ๋ณ๋ก ๋ฌ๋ผ์ง ๋นํธ ์๋ฅผ ๊ทธ๋ํ๋ก ๋ณด์ฌ์ค๋๋ค. ๋ช ๋ผ์ด๋ ๋ง์ ์ฝ 64๋นํธ๋ก ์๋ ดํฉ๋๋ค. ์ํ ํ๋ ฌ์ ๋นจ๊ฐ ์ ์ ๋ ๋ธ๋ก์์ ๊ฐ์ด ๋ค๋ฅธ ๋ฐ์ดํธ์ ๋๋ค.
- ๊ฒฐ๊ณผ: ์ํธ๋ฌธ์ HEX์ Base64๋ก ๋ณด์ฌ์ฃผ๊ณ ๋ณต์ฌํ ์ ์์ต๋๋ค.
์ ๋ ฅ
- ํ๋ฌธ๊ณผ ํค๋ ํ ์คํธ ๋๋ HEX๋ก ์ ๋ ฅํฉ๋๋ค. ํ ์คํธ๋ UTF-8๋ก ๋ณํ๋๋ฉฐ, ํ๋ฌธ์ด 16๋ฐ์ดํธ๋ณด๋ค ์งง์ผ๋ฉด PKCS#7 ํจ๋ฉ์ ๋ถ์ ๋๋ค.
- ํค ๊ธธ์ด๋ 128, 192, 256๋นํธ ์ค ์ ํํ ์ ์์ต๋๋ค.
- ์์ ๋ก '๋ด ํ ์คํธ'์ FIPS-197 ๋ถ๋ก B, C.1, C.2, C.3์ด ๋ค์ด ์์ต๋๋ค.
FIPS-197 ์ํ ๋ฒกํฐ 4์ข (AES-128, 192, 256)์ผ๋ก ๊ฒฐ๊ณผ๊ฐ ์ ํํ ์ผ์นํ๋ ๊ฒ์ ํ์ธํ๊ณ , ํด๋น ์์ ๋ฅผ ์ ํํ๋ฉด ํ๋ฉด์ "๊ธฐ๋๊ฐ๊ณผ ์ผ์น โ" ๋ฐฐ์ง๊ฐ ํ์๋ฉ๋๋ค.
Mechatronics Lab is an interactive browser simulator that shows the core loop of mechatronics: sensor โ controller โ actuator โ mechanism. Each module shows the animated device on one side and a live oscilloscope on the other.
Modules
- DC Servo + PID: encoder-based position control with adjustable Kp, Ki, Kd, load torque and encoder resolution. Drag the dial to set a target. A live block diagram shows each stage, and the driver is marked when the voltage saturates at ยฑ12 V.
- Cart-Pole Balancer: an inverted pendulum kept upright by state feedback, with LQR-derived default gains. Click to shove the pole, or move the target to see the non-minimum-phase response, where the cart first moves the wrong way.
- 2-Link Robot Arm: inverse kinematics driving speed-limited joint servos. The gripper can follow the pointer or a circle, figure-8 or square path. The view shows the reachable workspace, out-of-reach targets and singularity warnings.
- Stepper Motor: compares wave, full-step, half-step and 16ร microstep drive, with a live coil-current sequence table. Raising the step rate or load causes lost steps.
- PWM + H-Bridge: shows how duty cycle, PWM frequency and inductance affect current ripple and motor speed. Switch states Q1โQ4 and current flow are visualized.
- IMU Sensor Fusion: a complementary filter combines a noisy accelerometer with a drifting gyroscope. RMS errors are compared live, and you can drag to tilt the board by hand.
Common controls: sliders for each parameter, Space to pause or resume, R to reset. Live readouts show key values such as error, current, speed and lost steps.
MCP ์๋ฒ๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ํ๊ณ , ์ง์ ๋๊ตฌ๋ฅผ ๋ง๋ค์ด ๋ฉ์์ง ํ๋ฆ์ ์๋ฎฌ๋ ์ด์ ํด๋ณผ ์ ์๋ ํ๊ธ HTML ํ์ด์ง ์ ๋๋ค.
Spring Boot ํ์ดํ๋ผ์ธ ํ์ต ํ์ด์ง๋ฅผ ๋ง๋ค์์ต๋๋ค. ํ์ด์ง๋ ์ธ ๋ถ๋ถ์ผ๋ก ๋์ด ์์ต๋๋ค.
- ํ์ดํ๋ผ์ธ ์ง๋: ํธ๋ฆฌ๊ฑฐ โ ๋น๋ โ ํ
์คํธ โ ํจํค์ง โ Docker ์ด๋ฏธ์ง โ Dev ๋ฐฐํฌ โ Prod ๋ฐฐํฌ, ์ด๋ ๊ฒ 7๋จ๊ณ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋จ๊ณ๋ฅผ ๋๋ฅด๋ฉด ๊ทธ ๋จ๊ณ๊ฐ ํ๋ ์ผ, ์ฌ์ด ๋น์ , ์ค์
azure-pipelines.yml์ฝ๋๊ฐ ํจ๊ป ๋์ต๋๋ค. - ์๋ฎฌ๋ ์ดํฐ: ๋จผ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๊ณ ๋ฆ ๋๋ค(main push, PR, feature ๋ธ๋์น). ๋ค์์ผ๋ก ๋ฃ์ ์ค๋ฅ๋ฅผ ๊ณ ๋ฆ ๋๋ค(์ปดํ์ผ ์ค๋ฅ, ํ ์คํธ ์คํจ, ์ปค๋ฒ๋ฆฌ์ง ๋ถ์กฑ). ๋ง์ง๋ง์ผ๋ก ์ด์ ๋ฐฐํฌ ์ ์น์ธ ์ฌ๋ถ๋ฅผ ์ ํ๊ณ ์คํํ๋ฉด ๋ฉ๋๋ค. ๋จ๊ณ๊ฐ ์ค์ ์ฒ๋ผ ์งํ๋๊ณ , ๋ก๊ทธ์ ํจ๊ป ์ง๊ธ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง ์ฌ์ด ์ค๋ช ์ด ๋์ต๋๋ค. "ํ ๋จ๊ณ์ฉ" ๋ฒํผ์ผ๋ก ์ฒ์ฒํ ๋ฐ๋ผ๊ฐ ์ ์๊ณ , Prod ๋ฐฐํฌ ์ ์๋ ์น์ธ๊ณผ ๊ฑฐ์ ์ ์ง์ ๋๋ฌ ๋ณผ ์ ์์ต๋๋ค. ์ฐ์ต ๋ฏธ์ 4๊ฐ๋ ํด๋น ์ํฉ์ ๋ง๋ค๋ฉด ์๋์ผ๋ก ์ฒดํฌ๋ฉ๋๋ค.
- ์ฉ์ด ์ฌ์ : Stage, Job, Agent, Artifact, Environment ๊ฐ์ ๊ธฐ๋ณธ ์ฉ์ด๋ฅผ ์ ๋ฆฌํ์ต๋๋ค.
AES ํค ๊ณต๊ฐ ํ์ด์ง๋ฅผ ๋ง๋ค์์ต๋๋ค. ํค ๊ธธ์ด(128/192/256), ์ฅ๋น ์๋, ์ฅ๋น ๋์, ์์(๊ทธ๋ก๋ฒ) ๊ฐ์ ์ ๋ฐ๊พธ๋ฉด ์๋ ํญ๋ชฉ์ด ๋ฐ๋ก ๋ค์ ๊ณ์ฐ๋ฉ๋๋ค.
- ํค ๊ฐ์: ๊ณผํ์ ํ๊ธฐ, ํ๊ตญ์ด ๋จ์ ์ฝ๊ธฐ(์: 2ยนยฒโธ โ 340๊ฐ), 2โฟ์ ์ ์ฒด ์๋ฆฟ์
- ์๊ฐ: ํ๊ท ยท์ต์ ์์ ์๊ฐ๊ณผ ์ฐ์ฃผ ๋์ด ๋๋น ๋ฐฐ์, ๊ทธ๋ฆฌ๊ณ ์์ /์ํ ํ์
- ํ์ ๋น์จ: 1์ด, 1์ผ, 1๋ , ์ฐ์ฃผ ๋์ด ๋์ ํ์ธํ ์ ์๋ ๋น์จ์ ๋ก๊ทธ ๋ง๋๋ก ํ์
- ๊ท๋ชจ ๋น๊ต: DES, ๋ชจ๋์, ๋ณ, ์์ ์์ ๋น๊ตํ๋ ๋ก๊ทธ ์ฐจํธ
- ๊ฐ์ง ํ๋ณด ํค ์: ์๊ณ ์๋ ํ๋ฌธยท์ํธ๋ฌธ ๋ธ๋ก ์์ ๋ฐ๋ผ ํจ๊ป ๊ฑธ๋ฌ์ง๋ ํค์ ๊ธฐ๋๊ฐ. ์๋ฅผ ๋ค์ด AES-256์ ๋ธ๋ก 1๊ฐ๋ง ์๋ฉด ์ผ์นํ๋ ํค๊ฐ ์ฝ 2ยนยฒโธ๊ฐ ๋จ์ต๋๋ค.
Git์ ํต์ฌ ๊ฐ๋ (์์ ๋๋ ํฐ๋ฆฌ โ ์คํ ์ด์ง โ ์ปค๋ฐ, ๋ธ๋์น, ๋ณํฉ, ์๊ฒฉ ์ ์ฅ์)์ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ํ๊ณ , ์ง์ ๋ช ๋ น์ด๋ฅผ ๋๋ฌ๋ณด๋ฉฐ ๋ฐ๋ผ ํ ์ ์๋ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ค์ด๊ฐ ํ๊ธ ํ์ด์ง์ ๋๋ค.