๋ชฉ๋กBack-end (35)
DevLog ๐ถ
๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์คํ๋ง ๋น ๋ฑ๋ก ๊ณผ์ ์ ๋ํด ์ฌ๋ฌ ์ ๋ณด๋ฅผ ์ฐพ์๋ณด๋ค๊ฐ, inner class์ ๊ฒฝ์ฐ ๋น์ผ๋ก ๋ฑ๋ก๋ ์ ์๋ค๋ ๊ธ์ ๋ณด์๋ค. ๋ญ๊ฐ ๋ฑ๋ก์ด ๋ ๊ฒ ๊ฐ์๋ฐ ์ ๋๋ค๊ณ ํด์ ์ง์ ์คํ์ ํด๋ณด์๋ค ๐ค โ๏ธ inner class์ static class ์ฐ์ , ๋ ๊ฐ์ง์ ๋ํ ๊ฐ๋ ๋ถํฐ ์ ๋๋ก ์ก๊ณ ๊ฐ์ผ ํ๋ค. ํํ ๋ด๋ถ ํด๋์ค๋ผ๊ณ ํ๋ค๋ฉด, static ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ์ด ๋์ ๊ฐ์ ๊ฐ๋ ์ผ๋ก ํผ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ ํํ ๊ฐ๋ ์ ์๊ธฐ ์ํด Oracle ๊ณต์ ๋ฌธ์๋ฅผ ํ์ธํด๋ณด์. ๐ฑ The Java programming language allows you to define a class within another class. Such a class is called a nes..
์ง๋ ๋ฒ์ ์ง๋ ฌํ ๊ด๋ จํด์ ๊ธ์ ์์ฑํ์์ด์, ์ด๋ฒ์๋ Jackson์์ ์ ๊ณตํ๋ ์ญ์ง๋ ฌํ ๊ธฐ๋ฅ์ ๋ํด์ ๊ณต๋ถํด๋ณด๊ณ ์ ํ๋ค. โ๏ธ Deserialization Deserialization is the process of reconstructing a data structure or object from a series of bytes or a string in order to instantiate the object for consumption. ์ญ์ง๋ ฌํ๋ data structure๋ ๊ฐ์ฒด๋ฅผ ์ผ๋ จ์ ๋ฐ์ดํธ๋ ๋ฌธ์์ด๋ก ์ฌ๊ตฌ์ฑํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ์ธ์คํด์คํํ๋ ํ๋ก์ธ์ค์ด๋ค. ์ง๋ ฌํ์ ๋ฐ๋๋ผ๊ณ ๋ณผ ์ ์์ผ๋ฉฐ, ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฅ์น๊ฐ์ ์ ์ฅ์ด๋ ์ ์กํ๋ ๊ฒ์ด๋ค. Jackson์์๋ ์ด๋ค ์ด๋ ธํ ์ด์ ์ ํตํด ์ญ์ง..
๋ ๋ฒจ 2 ์์ ์๊ฐ์ ์์กด์ฑ ์ฃผ์ ๊ด๋ จ ๋ด์ฉ์ ๋ค์ผ๋ฉด์ ์กฐ๊ธ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ณ ์ถ์ด์ ๊ฐ๋จํ๊ฒ ๊ธ์ ์์ฑํด๋ณด๊ณ ์ ํ๋ค. ๊ทธ๋์ ์คํ๋ง์ ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์์ฑํ๊ธฐ ์ข์ ํ๋ ์์ํฌ๋ผ๊ณ ๋ง์ ๋ค์ด๋ดค์ง๋ง, ์ ํํ๊ฒ ์์ธ์ง๋ ์ดํดํ ์ ์ด ์์๋ค. ์ ๋ฆฌ๋ฅผ ํตํด์ ์กฐ๊ธ ๋ ๋จธ๋ฆฌ์... ๋ด์๋๊ณ ์ ํ๋ค! โ๏ธ ๊ฐ์ฒด์งํฅ์ ์ค๊ณ๊ณผ ๋์์ธ ํจํด ์ฐ์ , ๊ฐ์ฒด์งํฅ ์ค๊ณ ์์น์ผ๋ก ๋ง์ด๋ค ์ธ๊ธํ๋ SOLID์ ๋ํด์ ๊ฐ๋จํ๊ฒ ์๊ฐํด๋ณด์. - SRP (๋จ์ผ ์ฑ ์ ์์น): ์ด๋ค ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ๋ ์ด์ ๋ ์ค์ง ํ๋๋ฟ์ด์ด์ผ ํ๋ค. - OCP (๊ฐ๋ฐฉ ํ์ ์์น): ์์ ์ ํ์ฅ์๋ ์ด๋ ค์๊ณ , ์ฃผ๋ณ์ ๋ณํ์๋ ๋ซํ์์ด์ผ ํ๋ค. - LSP (๋ฆฌ์ค์ฝํ ์นํ ์์น): ์๋ธ ํ์ ์ ํญ์ ์์ ์ ๊ธฐ๋ฐ ํ์ ์ผ๋ก ๊ต์ฒดํ ์ ์์ด์ผ ํ๋ค. - ISP (์ธํฐํ์ด์ค..
๋ฌธ๋ ์ง๋ ฌํ ๊ด๋ จํด์ ๊ถ๊ธํดํ๋ค๊ฐ, Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด์๋ ํ ๋ฒ ๊ณต๋ถํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ์์ฑํ๋ ๊ธ! ์ ๋ง ๊ฐ๋จํ๊ณ ์๊ฒ ์ ๋ฆฌํ ์์ ์ด๋ผ, ๋์ค์ ๊น๊ฒ ๊ณต๋ถํ๊ฒ ๋๋ค๋ฉด ํ ๋ฒ ๋ ์์ฑํด๋ณด์ง ์์๊น ์ถ๋ค ๐ซ โ๏ธ Serialization Serialization is taking the properties of an object, and converting them into json string representation. ์ง๋ ฌํ๋ ๋ฌด์์ผ๊น? ๊ฐ์ฒด์ ์์ฑ์ ๊ฐ์ ธ์์ Json ๋ฌธ์์ด ํํ์ผ๋ก ๋ณํํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ ํํ๊ฒ๋, ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ๋ณํํ๋ ๊ฒ์ด๋ฉฐ, ์ง๋ ฌํ๋ ๊ฐ์ฒด๋ ๋์ค์ ๋ค์ ๋ณต์์ด ๊ฐ๋ฅํ๋ค. public class Crew { private String name; ..
๐ฑ ๋ฌธ์ ์ํฉ ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ์งํํ๋ฉด์, ๋ถ๋ช ํ ์คํธ ์ฝ๋ ๊ฐ๊ฐ์ ์คํํ์ ๋๋ ์ ๋์๊ฐ๋๋ฐ ์ ์ฒด๋ฅผ ์คํํ๋๊น ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง๋ฌ์๋ค. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is ..
- ํ ๋น์ '์คํ๋ง ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ' ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. - ์ ์ฒด ์์ค์ฝ๋) https://github.com/Cl8D/SpringReactive GitHub - Cl8D/SpringReactive: Spring Reactive Programming ํ์ต ์ฉ๋ ๋ ํ์งํ ๋ฆฌ์ ๋๋ค. Spring Reactive Programming ํ์ต ์ฉ๋ ๋ ํ์งํ ๋ฆฌ์ ๋๋ค. Contribute to Cl8D/SpringReactive development by creating an account on GitHub. github.com โ๏ธ Iterable / Iterator package chapter1; import java.util.Iterator; public class Basic { public sta..
๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] ์ํ ๊ด๋ฆฌ ์์คํ ์ ํ์๊ฐ์ / ๋ก๊ทธ์ธ ์ฒ๋ฆฌ ๋ก์ง ์ถ๊ฐํ๊ธฐ, ์ฟ ํค๋ฅผ ํตํ ์๋ณ ์ฒ๋ฆฌ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ..
๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com - ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] ์ํ ๊ด๋ฆฌ ์์คํ ์ ํ์๊ฐ์ / ๋ก๊ทธ์ธ ์ฒ๋ฆฌ ๋ก์ง ์ถ๊ฐํ๊ธฐ, ์ฟ ํค๋ฅผ ํตํ ์๋ณ ์ฒ๋ฆฌ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์..
๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com - ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] Bean Validation - ์ด๋ ธํ ์ด์ ์ ํตํด ๊ฒ์ฆ ์งํํ๊ธฐ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ..
๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์ www.inflearn.com - ์ง๋ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :D [Spring] BindingResult๋ฅผ ํ์ฉํด์ ๊ฒ์ฆ ๋ก์ง ์ถ๊ฐํ๊ธฐ, MessageCodesResolver ์์๋ณด๊ธฐ ๊น์ํ ๋์ '์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ '์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ ์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์ - ์ธํ๋ฐ | ๊ฐ์ ์น..